Fleet details#

PropertyValue
Servicecrossfire
Operationfleet
MethodGET
Path/api/fleets/{fleetId}
Authenticationfleet
Success status200
Response dataUnpaginated value
Request formatjson
Maximum request body2097152 bytes (service default)
Permission codesagent.read.owned, agent.read.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#

object; fields below; unknown fields rejected

Field pathRepresentation and constraints
fleetIdlowercase opaque UUID

Validation#

check.object({ fleetId: 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 ( fleet )

Field pathRepresentation and constraints
fleetIdlowercase opaque UUID
ownerobject; fields below; unknown fields rejected ( principal )
owner.principalIdlowercase opaque UUID
owner.matrixUserIdwell-formed Matrix user ID; maximum 255 UTF-16 units
owner.kindhuman or agent
owner.displayNamestring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
owner.ownerIdlowercase opaque UUID
owner.ownerMatrixIdwell-formed Matrix user ID; maximum 255 UTF-16 units
fleetKeylowercase name; pattern [a-z][a-z0-9-]{0,39}
labelstring; 1–100 UTF-16 units; well-formed Unicode; no C0/DEL controls
controllerobject; fields below; unknown fields rejected ( controller )
controller.namestring; 1–100 UTF-16 units; well-formed Unicode; no C0/DEL controls
controller.metadatacustom validation: metadata ; see function below; optional property
revisionexact JSON integer; 0…9007199254740991
createdAtexact JSON integer; 0…9007199254740991
updatedAtexact JSON integer; 0…9007199254740991
deliveryobject; fields below; unknown fields rejected ( fleetControl )
delivery.fleetIdlowercase opaque UUID
delivery.revisionexact JSON integer; 0…9007199254740991
delivery.deliveryEnabledboolean
delivery.connectionobject; fields below; unknown fields rejected
delivery.connection.statusonline or offline
delivery.connection.lastSeenAtexact JSON integer; 0…9007199254740991; JSON null permitted
canArchiveboolean
allowedActionsarray; 0–2 entries; item: configure or archive

Additional checks#

The following checks apply in addition to the field limits.

Constraint on controller.metadata:

function metadata(input: unknown): Result<Record<string, string>> {
    if (!input || typeof input !== 'object' || Array.isArray(input) || Object.keys(input).length > 16)
        return failure('invalid', 'Controller metadata supports at most 16 text fields');
    const output: Record<string, string> = {};
    for (const [key, value] of Object.entries(input)) {
        if (!/^[a-z][a-z0-9-]{0,39}$/u.test(key) || !check.text(256, 0)(value).ok || typeof value !== 'string')
            return failure('invalid', 'Invalid controller metadata');
        output[key] = value;
    }
    return success(output);
}

Validation#

res.fleet

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