Remove agent room grant#

PropertyValue
Servicecrossfire
OperationremoveGrant
MethodDELETE
Path/api/agents/{agentId}/room-grants/{roomId}
Authenticationeither
Success status202
Response dataUnpaginated value
Request formatjson
Maximum request body2097152 bytes (service default)
Permission codesagent.room-grant.manage.owned, agent.room-grant.manage.any, room.agent.invite

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#

object; fields below; unknown fields rejected

Field pathRepresentation and constraints
agentIdlowercase opaque UUID
roomIdimmutable Matrix room ID; maximum 255 UTF-16 units

Validation#

check.object({ agentId: check.identifier, roomId: check.roomId })

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

Field pathRepresentation and constraints
expectedRevisionexact JSON integer; 0…9007199254740991 ( revision )
expectedGenerationlowercase opaque UUID; JSON null permitted

Validation#

req.removeGrant

Referenced definitions:

Response data#

object; fields below; unknown fields rejected ( grantView )

Field pathRepresentation and constraints
agentIdlowercase opaque UUID
revisionexact JSON integer; 0…9007199254740991
grantobject; fields below; unknown fields rejected ( grant ); JSON null permitted
grant.agentIdlowercase opaque UUID
grant.roomIdimmutable Matrix room ID; maximum 255 UTF-16 units
grant.generationlowercase opaque UUID
grant.authorizerIdlowercase opaque UUID
grant.addedByIdlowercase opaque UUID
grant.accessModenone or read or reply or custom
grant.powerLevelexact JSON integer; -9007199254740991…9007199254740991; JSON null permitted
grant.mutedboolean
grant.revisionexact JSON integer; 0…9007199254740991
grant.accessRevisionexact JSON integer; 0…9007199254740991
grant.updatedAtexact JSON integer; 0…9007199254740991
ownerConversationboolean
applicationobject; fields below; unknown fields rejected; constraint: Native creators have no finite power level ( grantApplication ); JSON null permitted
application.observedGenerationlowercase opaque UUID; JSON null permitted
application.appliedRevisionexact JSON integer; 0…9007199254740991; JSON null permitted
application.appliedAccessRevisionexact JSON integer; 0…9007199254740991; JSON null permitted
application.membershipjoin or invite or leave or ban; JSON null permitted
application.creatorboolean
application.powerLevelexact JSON integer; -9007199254740991…9007199254740991; JSON null permitted
application.lastAttemptAtexact JSON integer; 0…9007199254740991; JSON null permitted
application.lastSuccessAtexact JSON integer; 0…9007199254740991; JSON null permitted
application.errorCodestring; 1–100 UTF-16 units; well-formed Unicode; no C0/DEL controls; JSON null permitted
application.errorMessagestring; 1–4096 UTF-16 units; well-formed Unicode; no C0/DEL controls; JSON null permitted
permissionsarray; 0–1 entries; item: room.agent.invite
allowedActionsarray; 0–3 entries; item: set or remove or permissions.set

Additional checks#

The following checks apply in addition to the field limits.

Constraint on application:

application => !application.creator || application.powerLevel === null

Validation#

res.grantView

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