Resolved listener delivery policy#

PropertyValue
Servicecrossfire
OperationdeliveryPolicy
MethodGET
Path/api/agents/{agentId}/delivery-policy
Authenticationagent
Success status200
Response dataUnpaginated value
Request formatjson
Maximum request body2097152 bytes (service default)
Permission codesagent.read.self

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#

object; fields below; unknown fields rejected

Field pathRepresentation and constraints
agentIdlowercase opaque UUID

Validation#

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

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#

empty object; unknown fields rejected

Validation#

check.empty

Referenced definitions:

Response data#

object; fields below; unknown fields rejected; constraint: Invalid resolved delivery authority ( deliveryPolicy )

Field pathRepresentation and constraints
agentIdlowercase opaque UUID
matrixUserIdwell-formed Matrix user ID; maximum 255 UTF-16 units
ownerMatrixIdwell-formed Matrix user ID; maximum 255 UTF-16 units
maxMessageBytesexact JSON integer; 4096…4194304
fleetIdleTimeoutSecondsexact JSON integer; 0…604800
statusvalidator choice('active', 'suspended', 'revoked') ( status )
ownerStatusvalidator choice('active', 'suspended', 'revoked') ( status )
ownerConversationimmutable Matrix room ID; maximum 255 UTF-16 units; JSON null permitted
roomGrantsarray; 0–101 entries; item: object; fields below; unknown fields rejected ( deliveryGrant )
roomGrants[].roomIdimmutable Matrix room ID; maximum 255 UTF-16 units
roomGrants[].accessModeread or reply or custom
roomGrants[].powerLevelexact JSON integer; -9007199254740991…9007199254740991; JSON null permitted
roomGrants[].mutedboolean
wakeModevalidator choice('selected', 'humans', 'everyone') ( wakeMode )
senderMatrixIdsarray; 0–2000 entries; item: well-formed Matrix user ID; maximum 255 UTF-16 units

Additional checks#

The following checks apply in addition to the field limits.

Constraint on object:

policy => new Set(policy.senderMatrixIds).size === policy.senderMatrixIds.length && !policy.senderMatrixIds.includes(policy.matrixUserId)
    && new Set(policy.roomGrants.map(grant => grant.roomId)).size === policy.roomGrants.length
    && policy.roomGrants.every(grant => (grant.accessMode === 'custom') === (grant.powerLevel !== null))
    && (policy.ownerConversation === null || policy.roomGrants.some(grant => grant.roomId === policy.ownerConversation && grant.accessMode === 'reply' && !grant.muted))
    && (policy.status === 'active' && policy.ownerStatus === 'active' || policy.senderMatrixIds.length === 0)

Validation#

res.deliveryPolicy

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