Media model
Each retained media item has one URL-backed file part. Its Event metadata is a completeMessageMediaPayload, and its
mediaId associates that file with an optional transcript part in the same A2A message.
Adapters and agents must inspect all parts. They must not assume that the first text part is the complete request.
Provider-authored caption text appears before transcript text, and each transcript is linked to its source item by
mediaId.
For the complete schemas, see the
Distribution/Messaging extension.
File identity and immutable history
An accessible media file carries two Aion identifiers:fileIdis the stable File Recording identifier.fileVersionIdis the exact immutable File Recordable identifier represented by the part.
fileVersionId only while those exact bytes are retained and access remains authorized.
File-part metadata includes accessExpiresAt for the exact URL and may include retentionExpiresAt for the bytes.
After the URL expires, the Files API returns an authorization or expiry response as appropriate. After the retained
bytes expire, the historical URL returns 410 Gone. If its exact file version no longer exists, clients should treat
the content as expired. The task and its metadata remain unchanged until normal A2A task cleanup.
Availability and transcription
MessageMediaPayload.availability records the file’s dispatch-time access facts. The payload appears only on an
accessible file part, so its status is available. Availability does not imply that a later client can refresh an
expired grant; the refreshable field records that dispatch-time capability.
Automatic transcription has an independent terminal status:
Only
completed has a transcript text part. Other statuses must not fabricate transcript text. Provider pages state
whether no-speech suppresses agent dispatch or whether another terminal status still delivers the file.
Access, safety, and retention
Aion file URLs route through the authenticated Files API rather than exposing provider credentials or object-store addresses. Access checks use the File’s organization and owner association. File egress is measured asynchronously so authorized downloads can start streaming without waiting for usage publication. Ingest applies bounded size, MIME/signature, executable-type, and attachment-disposition checks. These controls reduce obvious type confusion; they are not an Aion-owned malware-scanning service. Agents and downstream applications remain responsible for deciding whether and how to process untrusted content. Retention is purpose-specific. Supported Telegram Bot media and Slack native-audio bytes are retained for one hour after the file becomes ready. Profile images remain until replacement or explicit deletion. Other attachment categories require an explicit retention policy before content storage is enabled. When A2A task cleanup encounters retained media, it requests best-effort logical File deletion. Task cleanup continues if deletion fails; deadline and later orphan reconciliation remain able to remove leftover bytes. File tombstones and billing facts remain available for audit.Provider differences
See the Email, Slack, and
Telegram Bot pages for provider-specific request behavior.