{"manifestVersion":"1","app":{"name":"accounts","version":"2.10.0","status":"live"},"actions":[{"id":"system.accounts.access.list.v1","title":"One org’s own App access requests, scoped to that org id and the caller’s app scope.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appSlug":{"type":"string"},"appName":{"type":"string"},"appKind":{"type":"string"},"status":{"type":"string"},"note":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"decidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","appSlug","appName","appKind","status","note","createdAt","decidedAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requests","nextCursor"],"additionalProperties":false}},{"id":"system.accounts.access.request.v1","title":"An org requests access to a restricted App (C2.1); the org id is the body, never the token.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appSlug":{"type":"string","minLength":1},"requestedBy":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"note":{"type":"string","maxLength":2000}},"required":["orgId","appSlug","requestedBy"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ok":{"type":"boolean","const":true},"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"}},"required":["ok","requestId","status"],"additionalProperties":false}},{"id":"system.accounts.api-keys.create.v1","title":"Mint an org API key; the raw secret is in the reply and nowhere else, ever.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"ttlSecs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"roleIds":{"maxItems":50,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"productIds":{"maxItems":50,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["orgId","actingUserId","name"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"key":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"prefix":{"type":"string"},"status":{"type":"string","enum":["active","revoked","expired"]},"ttlSecs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"revokedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastUsedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"productIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"roleIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["id","name","prefix","status","ttlSecs","expiresAt","revokedAt","lastUsedAt","createdAt","productIds","roleIds"],"additionalProperties":false},"secret":{"type":"string"}},"required":["key","secret"],"additionalProperties":false}},{"id":"system.accounts.api-keys.delete.v1","title":"Permanently remove a REVOKED key and its bindings; a live key is refused.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"keyId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","keyId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean"}},"required":["deleted"],"additionalProperties":false}},{"id":"system.accounts.api-keys.list.v1","title":"One org’s API keys as non-secret views — never a secret hash, at any page size.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"keys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"prefix":{"type":"string"},"status":{"type":"string","enum":["active","revoked","expired"]},"ttlSecs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"revokedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastUsedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"productIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"roleIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["id","name","prefix","status","ttlSecs","expiresAt","revokedAt","lastUsedAt","createdAt","productIds","roleIds"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["keys","nextCursor"],"additionalProperties":false}},{"id":"system.accounts.api-keys.revoke.v1","title":"Tombstone a key — inert immediately, grace window cleared. Idempotent.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"keyId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","keyId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revoked":{"type":"boolean"}},"required":["revoked"],"additionalProperties":false}},{"id":"system.accounts.api-keys.rotate.v1","title":"Issue a new secret; the old one keeps working for the grace window. Returned once.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"keyId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","keyId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"key":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"prefix":{"type":"string"},"status":{"type":"string","enum":["active","revoked","expired"]},"ttlSecs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"revokedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastUsedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"productIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"roleIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["id","name","prefix","status","ttlSecs","expiresAt","revokedAt","lastUsedAt","createdAt","productIds","roleIds"],"additionalProperties":false},"secret":{"type":"string"}},"required":["key","secret"],"additionalProperties":false}},{"id":"system.accounts.apps.list.v1","title":"Apps an org may use — public apps plus its explicit grants (D30).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"apps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"granted":{"type":"boolean"},"requestable":{"type":"boolean"}},"required":["slug","name","description","granted"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["apps","nextCursor"],"additionalProperties":false}},{"id":"system.accounts.existing-user-ids.get.v1","title":"New (5.13): which of these user ids still exist — ids only, never a name or an address (D3a).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ids":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["ids"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"existingIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["existingIds"],"additionalProperties":false}},{"id":"system.accounts.idp.resolve.v1","title":"A caller's IDP authz context — superadmin flag, role tier, `idp:` codes (D2, Q12).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accessToken":{"type":"string","minLength":1}},"required":["accessToken"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"authenticated":{"type":"boolean","const":false}},"required":["authenticated"],"additionalProperties":false},{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"idpRole":{"type":"string"},"wildcardAll":{"type":"boolean"},"permissions":{"type":"array","items":{"type":"string"}},"authenticated":{"type":"boolean","const":true}},"required":["userId","idpRole","wildcardAll","permissions","authenticated"],"additionalProperties":false}]}},{"id":"system.accounts.org-app-suspensions.create.v1","title":"Suspend one org’s use of one product app for non-payment (#1334). Idempotent: an app already suspended stays suspended with its first reason. The token upgrade then refuses that app for that org with app_suspended; a platform app is never suspendable.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appSlug":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,40}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":255},"reason":{"type":"string","minLength":1,"maxLength":500}},"required":["orgId","appSlug","idempotencyKey","reason"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appSlug":{"type":"string"},"suspended":{"type":"boolean"}},"required":["orgId","appSlug","suspended"],"additionalProperties":false}},{"id":"system.accounts.org-app-suspensions.delete.v1","title":"Lift an org’s suspension of one app (#1334). Idempotent: an app that is not suspended replies suspended false. The suspension row is kept with its restore time as history.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appSlug":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,40}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":255}},"required":["orgId","appSlug","idempotencyKey"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appSlug":{"type":"string"},"suspended":{"type":"boolean"}},"required":["orgId","appSlug","suspended"],"additionalProperties":false}},{"id":"system.accounts.permission-holders.get.v1","title":"Every user whose active IDP roles hold one of the asked codes, or `*`, with the asked codes each holds. The codes must all be in the calling app’s own namespace, and the acting user (from their access token) must hold `*` or one of them. Refused above the cap rather than truncated.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accessToken":{"type":"string","minLength":1,"maxLength":8192},"codes":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","minLength":3,"maxLength":120}}},"required":["accessToken","codes"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"holders":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","minLength":1,"maxLength":64},"codes":{"maxItems":10,"type":"array","items":{"type":"string"}},"wildcard":{"type":"boolean"}},"required":["userId","codes","wildcard"],"additionalProperties":false}}},"required":["holders"],"additionalProperties":false}},{"id":"system.accounts.permissions.list.v1","title":"App → feature → permission catalogue for the Apps an org is entitled to (1.34).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"apps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"granted":{"type":"boolean"},"requestable":{"type":"boolean"},"features":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"permissions":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["code","description"],"additionalProperties":false}}},"required":["slug","label","description","enabled","permissions"],"additionalProperties":false}},"permissions":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["code","description"],"additionalProperties":false}},"roles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string"},"codes":{"type":"array","items":{"type":"string"}}},"required":["role","codes"],"additionalProperties":false}}},"required":["slug","name","description","granted","features","permissions","roles"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["apps","nextCursor"],"additionalProperties":false}},{"id":"system.accounts.tokens.mint.v1","title":"Mint an m2m access token from client_id + client_secret — the bootstrap (4.08).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"grant_type":{"type":"string","const":"client_credentials"},"client_id":{"type":"string","minLength":1},"client_secret":{"type":"string","minLength":1},"audience":{"type":"string","minLength":1},"scope":{"type":"string"}},"required":["grant_type","client_id","client_secret"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"access_token":{"type":"string"},"token_type":{"type":"string","const":"Bearer"},"expires_in":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"scope":{"type":"string"}},"required":["access_token","token_type","expires_in"],"additionalProperties":false}},{"id":"system.accounts.tokens.upgrade.v1","title":"Mint a short-lived org-scoped JWT on a calling app’s behalf (2.30) — accounts signs.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subject":{"type":"string","minLength":1},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"audience":{"type":"string","minLength":1},"permissions":{"maxItems":200,"type":"array","items":{"type":"string"}},"ttlSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"keyPrefix":{"type":"string"}},"required":["subject","orgId","audience","permissions"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string"},"expires_in":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"token_type":{"type":"string","const":"Bearer"}},"required":["token","expires_in","token_type"],"additionalProperties":false}},{"id":"system.accounts.user-activity.get.v1","title":"How many of these users have a live session, and how many signed in recently.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userIds":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["userIds"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"known":{"type":"integer","minimum":0,"maximum":9007199254740991},"withLiveSession":{"type":"integer","minimum":0,"maximum":9007199254740991},"activeLast30Days":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["known","withLiveSession","activeLast30Days"],"additionalProperties":false}},{"id":"system.accounts.users.create.v1","title":"Make an account for a person an org admin is adding who has none, and email them the invitation to set a password (D28). Idempotent on the address: an existing account is returned and never changed. Any account whose address is unverified is invited, at most once per address per resend interval; a verified one is not. A new account starts unverified and without a credential.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string","minLength":3,"maxLength":254},"name":{"type":"string","minLength":1,"maxLength":120},"orgName":{"type":"string","minLength":1,"maxLength":200}},"required":["orgId","actingUserId","email","orgName"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"created":{"type":"boolean"},"invitation":{"type":"string","enum":["sent","recent","none"]}},"required":["id","created","invitation"],"additionalProperties":false}},{"id":"system.accounts.users.get.v1","title":"Non-secret display projection for user ids and/or emails the caller already holds.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ids":{"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"emails":{"maxItems":200,"type":"array","items":{"type":"string","minLength":1}}},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"email":{"type":"string"},"emailVerified":{"type":"boolean"},"hasAvatar":{"type":"boolean"}},"required":["id","name","email","emailVerified","hasAvatar"],"additionalProperties":false}}},"required":["users"],"additionalProperties":false}},{"id":"system.accounts.users.update.v1","title":"The my portal writes the signed-in user’s own display name through accounts, which owns the user. Self-only: id must equal actingUserId, and anything else is refused. An email change is refused — addresses move through accounts’ own verification flow, never this call.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"email":{"type":"string","minLength":1}},"required":["id","actingUserId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"],"additionalProperties":false}},{"id":"system.accounts.wellknown.capabilities.v1","title":"The accounts capabilities manifest: metadata, callable actions with schemas, public routes, emitted events, and model field catalogs. Public metadata only — a manifest never carries tenant rows.","route":"/.well-known/capabilities","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"manifestVersion":{"type":"string","const":"1"},"app":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"version":{"type":"string","minLength":1},"status":{"type":"string","enum":["live","degraded"]}},"required":["name","version","status"],"additionalProperties":false},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^system\\.[a-z0-9]+(-[a-z0-9]+)*\\.[a-z0-9]+(-[a-z0-9]+)*\\.[a-z0-9]+(-[a-z0-9]+)*\\.v[1-9][0-9]*$"},"title":{"type":"string","minLength":1},"route":{"type":"string","pattern":"^\\/"},"inputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"outputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["id","title","inputSchema","outputSchema"],"additionalProperties":false}},"functionalities":{"type":"object","properties":{"publicRoutes":{"type":"array","items":{"type":"string","pattern":"^\\/"}},"auth":{"type":"object","properties":{"issuer":{"type":"string","format":"uri"},"authorizationEndpoint":{"type":"string","format":"uri"},"tokenEndpoint":{"type":"string","format":"uri"},"jwksUri":{"type":"string","format":"uri"}},"required":["issuer"],"additionalProperties":false},"webhooks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["publicRoutes","webhooks"],"additionalProperties":false},"events":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9][a-z0-9.-]*[a-z0-9]$"},"title":{"type":"string","minLength":1},"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["name","title","schema"],"additionalProperties":false}},"models":{"type":"object","propertyNames":{"type":"string","minLength":1},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","minLength":1},"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"excluded":{"type":"array","items":{"type":"string","minLength":1}}},"required":["title","schema","excluded"],"additionalProperties":false}}},"required":["manifestVersion","app","actions","functionalities","events"],"additionalProperties":false}},{"id":"system.accounts.wellknown.jwks.v1","title":"The JWKS document. Public key material only — unauthenticated by design (D34).","route":"/.well-known/jwks","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"keys":{"type":"array","items":{"type":"object","properties":{"kty":{"type":"string"},"kid":{"type":"string"},"use":{"type":"string"},"key_ops":{"type":"array","items":{"type":"string"}},"alg":{"type":"string"},"n":{"type":"string"},"e":{"type":"string"},"crv":{"type":"string"},"x":{"type":"string"},"y":{"type":"string"},"x5u":{"type":"string"},"x5c":{"type":"array","items":{"type":"string"}},"x5t":{"type":"string"},"x5t#S256":{"type":"string"}},"required":["kty"],"additionalProperties":false}}},"required":["keys"],"additionalProperties":false}},{"id":"system.accounts.wellknown.openid-configuration.v1","title":"The OIDC discovery document. Public metadata only — unauthenticated by design (D34).","route":"/.well-known/openid-configuration","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},{"id":"system.accounts.wellknown.products.v1","title":"The public product directory (C1) — never platform apps, private products or clients.","route":"/.well-known/products","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"products":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"access":{"type":"string","enum":["everyone","on-request","by-grant-only"]},"permissions":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["code","description"],"additionalProperties":false}}},"required":["slug","name","description","access","permissions"],"additionalProperties":false}}},"required":["products"],"additionalProperties":false}}],"functionalities":{"publicRoutes":["/sign-in","/sign-up","/reset-password","/verify-email"],"webhooks":[]},"events":[{"name":"accounts.jwks.rotated","title":"accounts: jwks rotated","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"newKid":{"type":"string","minLength":1},"previousKid":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"rotatedAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["newKid","previousKid","rotatedAt"],"additionalProperties":false}},{"name":"accounts.message.queued","title":"accounts: message queued","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"messageId":{"type":"string","minLength":1}},"required":["messageId"],"additionalProperties":false}},{"name":"accounts.user.created","title":"accounts: user created","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string","minLength":1},"createdAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["userId","createdAt"],"additionalProperties":false}},{"name":"accounts.user.deleted","title":"accounts: user deleted","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string","minLength":1},"deletedAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["userId","deletedAt"],"additionalProperties":false}},{"name":"accounts.user.merged","title":"accounts: user merged","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"absorbedUserId":{"type":"string","minLength":1},"keptUserId":{"type":"string","minLength":1},"mergedAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["absorbedUserId","keptUserId","mergedAt"],"additionalProperties":false}},{"name":"accounts.user.profile-updated","title":"accounts: user profile updated","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string","minLength":1},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"locale":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["userId","timezone","locale","updatedAt"],"additionalProperties":false}},{"name":"accounts.org-app.granted","title":"accounts: org app granted","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string"},"appSlug":{"type":"string"},"grantedBy":{"type":"string"}},"required":["orgId","appSlug","grantedBy"],"additionalProperties":false}},{"name":"accounts.org-api-key.exchanged","title":"accounts: org api key exchanged","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"exchangeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","minLength":1},"keyId":{"type":"string","minLength":1},"prefix":{"type":"string","minLength":1},"audience":{"type":"string","minLength":1},"permissionCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"ip":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"exchangedAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["exchangeId","organizationId","keyId","prefix","audience","permissionCount","ip","exchangedAt"],"additionalProperties":false}},{"name":"accounts.audit.recorded","title":"accounts: audit recorded","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"occurredAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"orgId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"actorUserId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"actorKind":{"type":"string","enum":["user","api_key","service","system"]},"action":{"type":"string","minLength":1,"maxLength":160},"targetKind":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"targetId":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]},"outcome":{"type":"string","enum":["success","failure"]},"ip":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"userAgent":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"requestId":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},{"type":"null"}]}},"required":["eventId","occurredAt","orgId","actorUserId","actorKind","action","targetKind","targetId","outcome","ip","userAgent","requestId","metadata"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}],"models":{}}