{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/mediacaption-api/json-schema/mediacaption-api-upload-status-response-schema.json",
  "title": "UploadStatusResponse",
  "x-generated": "2026-11-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/mediacaption-api-uploads-api-openapi.yml#/components/schemas/UploadStatusResponse",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "filename",
    "sizeBytes",
    "durationSec",
    "requiredCredits",
    "reservedCredits",
    "status",
    "progress",
    "stage",
    "error",
    "createdAt",
    "completedAt"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "filename": {
      "type": [
        "string",
        "null"
      ]
    },
    "sizeBytes": {
      "type": [
        "integer",
        "null"
      ]
    },
    "durationSec": {
      "type": [
        "integer",
        "null"
      ]
    },
    "requiredCredits": {
      "type": [
        "integer",
        "null"
      ]
    },
    "reservedCredits": {
      "type": [
        "integer",
        "null"
      ]
    },
    "status": {
      "$ref": "#/$defs/UploadStatus"
    },
    "progress": {
      "type": [
        "integer",
        "null"
      ]
    },
    "stage": {
      "type": [
        "string",
        "null"
      ]
    },
    "error": {
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "completedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "transcriptionId": {
      "type": "string"
    },
    "transcriptionUrl": {
      "type": "string"
    }
  },
  "$defs": {
    "UploadStatus": {
      "type": "string",
      "enum": [
        "initiated",
        "uploading",
        "uploaded",
        "processing",
        "awaiting_credits",
        "completed",
        "failed",
        "aborted"
      ]
    }
  }
}