Review complete room plan#

PropertyValue
Servicecrossfire
OperationpreviewGrants
MethodPOST
Path/api/room-grant-previews
Authenticationhuman
Success status200
Response dataUnpaginated value
Request formatjson
Maximum request body2097152 bytes (service default)
Permission codesagent.room-grant.manage.owned, agent.room-grant.manage.any

Listed permission codes are alternatives, not token scopes. The service also checks access to the requested records and rejects stale revisions or controller generations.

Path parameters#

empty object; unknown fields rejected

Validation#

check.empty

Referenced definitions:

Query parameters#

custom validation: none ; see function below

Query parameters are URL text. The validation function below specifies their format, defaults and combinations. Pagination applies only to operations that use it.

Additional checks#

The following checks apply in addition to the field limits.

Constraint on value:

export function none(input: unknown) {
    const parsed = listQuery([])(input);
    return parsed.ok ? success({}) : parsed;
}

Validation#

query.none

Referenced definitions:

Request body#

object; fields below; unknown fields rejected ( planPreview )

Field pathRepresentation and constraints
planobject; fields below; unknown fields rejected ( plan )
plan.fleetIdlowercase opaque UUID
plan.agentsarray; 1–100 entries; item: object; fields below; unknown fields rejected
plan.agents[].instanceKeylowercase name; pattern [a-z][a-z0-9-]{0,39}
plan.agents[].grantsarray; 0–100 entries; item: object; fields below; unknown fields rejected ( grantIntent )
plan.agents[].grants[].roomIdimmutable Matrix room ID; maximum 255 UTF-16 units
plan.agents[].grants[].accessModeread or reply or custom
plan.agents[].grants[].powerLevelexact JSON integer; -9007199254740991…9007199254740991; JSON null permitted
plan.agents[].grants[].mutedboolean

Validation#

req.planPreview

Referenced definitions:

Response data#

object; fields below; unknown fields rejected ( preview )

Field pathRepresentation and constraints
digeststring; 64–64 UTF-16 units; well-formed Unicode; no C0/DEL controls
snapshotsarray; 0–100 entries; item: object; fields below; unknown fields rejected
snapshots[].agentIdlowercase opaque UUID
snapshots[].revisionexact JSON integer; 0…9007199254740991
snapshots[].grantsarray; 0–100 entries; item: object; fields below; unknown fields rejected
snapshots[].grants[].roomIdimmutable Matrix room ID; maximum 255 UTF-16 units
snapshots[].grants[].generationlowercase opaque UUID
snapshots[].grants[].revisionexact JSON integer; 0…9007199254740991
changesarray; 0–10000 entries; item: object; fields below; unknown fields rejected
changes[].agentIdlowercase opaque UUID
changes[].roomIdimmutable Matrix room ID; maximum 255 UTF-16 units
changes[].beforeobject; fields below; unknown fields rejected ( grant ); JSON null permitted
changes[].before.agentIdlowercase opaque UUID
changes[].before.roomIdimmutable Matrix room ID; maximum 255 UTF-16 units
changes[].before.generationlowercase opaque UUID
changes[].before.authorizerIdlowercase opaque UUID
changes[].before.addedByIdlowercase opaque UUID
changes[].before.accessModenone or read or reply or custom
changes[].before.powerLevelexact JSON integer; -9007199254740991…9007199254740991; JSON null permitted
changes[].before.mutedboolean
changes[].before.revisionexact JSON integer; 0…9007199254740991
changes[].before.accessRevisionexact JSON integer; 0…9007199254740991
changes[].before.updatedAtexact JSON integer; 0…9007199254740991
changes[].agentNamestring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
changes[].instanceKeylowercase name; pattern [a-z][a-z0-9-]{0,39}
changes[].roomNamestring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
changes[].roomAliasstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls; JSON null permitted
changes[].afterobject; fields below; unknown fields rejected ( grantIntent ); JSON null permitted
changes[].after.roomIdimmutable Matrix room ID; maximum 255 UTF-16 units
changes[].after.accessModeread or reply or custom
changes[].after.powerLevelexact JSON integer; -9007199254740991…9007199254740991; JSON null permitted
changes[].after.mutedboolean
changes[].changedboolean
changes[].authorizerIdlowercase opaque UUID
changes[].nativePowerLevelexact JSON integer; -9007199254740991…9007199254740991; JSON null permitted
changes[].nativeCreatorboolean

Validation#

plan.preview

Referenced definitions:

Response envelope#

A successful JSON response contains data and meta. Replace the data placeholder below with the response fields described above. Errors contain error instead of data.

{
  "data": "<value matching the response-data validator>",
  "meta": {
    "requestId": "00000000-0000-0000-0000-000000000001"
  }
}