Texecom Event Schemas

JSON Schema Documentation

Media Object Rejected Payload

Emitted when a pending media object cannot be processed (pending -> rejected). Its uploaded file is removed; an owning service holding a reference should drop it.

$idhttps://schemas.texecom-prod.com/v2/events/payload/service/media/object/rejected/v1.0.0.json
$schemahttp://json-schema.org/draft-07/schema

Properties

NameType
mediaIdString
ownerAccountIdString
kindString
reasonString

mediaId

Description UUID of the media object (media.objects.id). Also the envelope's sourceDetails[0].guid.
TypeString
Required Yes
Format uuid

ownerAccountId

Description UUID of the identity account that owns the object (media.objects.owner_account_id).
TypeString
Required Yes
Format uuid

kind

Description Media kind (media.objects.kind), e.g. avatar. Kinds are media-service configuration, so a new kind is not a schema change.
TypeString
Required Yes
Min Length 1

reason

Description Why the object was rejected. unsupported_type: the bytes are not an allowed image type for the kind. too_large: over the kind's size limit. empty: a zero-byte upload. undecodable: the image could not be decoded. upload_not_received: no upload arrived before the presigned POST expired, or S3 refused it against the POST policy (over the size limit, wrong Content-Type), which produces no S3 event; rejected by media-service's reaper. An oversize upload therefore usually surfaces as upload_not_received, not too_large.
TypeString
Required Yes
Enum
  • unsupported_type
  • too_large
  • empty
  • undecodable
  • upload_not_received

Schema

{
    "$id": "https://schemas.texecom-prod.com/v2/events/payload/service/media/object/rejected/v1.0.0.json",
    "$schema": "http://json-schema.org/draft-07/schema",
    "title": "Media Object Rejected Payload",
    "description": "Emitted when a pending media object cannot be processed (pending -> rejected). Its uploaded file is removed; an owning service holding a reference should drop it.",
    "type": "object",
    "properties": {
        "mediaId": {
            "description": "UUID of the media object (media.objects.id). Also the envelope's sourceDetails[0].guid.",
            "type": "string",
            "format": "uuid"
        },
        "ownerAccountId": {
            "description": "UUID of the identity account that owns the object (media.objects.owner_account_id).",
            "type": "string",
            "format": "uuid"
        },
        "kind": {
            "description": "Media kind (media.objects.kind), e.g. avatar. Kinds are media-service configuration, so a new kind is not a schema change.",
            "type": "string",
            "minLength": 1
        },
        "reason": {
            "description": "Why the object was rejected. unsupported_type: the bytes are not an allowed image type for the kind. too_large: over the kind's size limit. empty: a zero-byte upload. undecodable: the image could not be decoded. upload_not_received: no upload arrived before the presigned POST expired, or S3 refused it against the POST policy (over the size limit, wrong Content-Type), which produces no S3 event; rejected by media-service's reaper. An oversize upload therefore usually surfaces as upload_not_received, not too_large.",
            "type": "string",
            "enum": [
                "unsupported_type",
                "too_large",
                "empty",
                "undecodable",
                "upload_not_received"
            ]
        }
    },
    "required": [
        "mediaId",
        "ownerAccountId",
        "kind",
        "reason"
    ],
    "additionalProperties": false
}