Apply reviewed room plan#

PropertyValue
Servicecrossfire
OperationapplyGrants
MethodPOST
Path/api/room-grant-changes
Authenticationhuman
Success status202
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.

HTTP 202 means the request was accepted for processing. Check the operation’s status to find out whether it completed.

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 ( planChange )

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
digeststring; 64–64 UTF-16 units; well-formed Unicode; no C0/DEL controls
snapshotsarray; 1–100 entries; item: object; fields below; unknown fields rejected
snapshots[].agentIdlowercase opaque UUID
snapshots[].revisionexact JSON integer; 0…9007199254740991 ( revision )
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 ( revision )

Validation#

req.planChange

Referenced definitions:

Response data#

object; fields below; unknown fields rejected ( changed )

Field pathRepresentation and constraints
acceptedboolean
agentsarray; 0–100 entries; item: lowercase opaque UUID

Validation#

plan.changed

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"
  }
}