DPF · Schema

Update Spec

Updates an existing spec's mutable fields. Only fields present in the request are changed; omitted fields keep their current value. This only saves the settings — it does NOT regenerate code/SQL or re-run anything by itself. Call `start-analysis` afterward to do that (the workspace.html UI always does both together as "Update & Re-process"). `sourceType` is fixed at creation and cannot be changed here. `sampleFileName`/ `formatFileName` only apply to sourceType=file specs; `lastRunTs` only applies to sourceType=tables specs; `sourceTables` applies to both sourceType=tables and sourceType=compaction. A sourceType=compaction spec accepts only `sourceTables`, `expirePriorSnapshots`, `computeSize` and `description` — sending a target field, a file field or `merge` returns 400, since it has none of those.

DataArtificial IntelligenceETLApache IcebergPlatformCompany

Properties

Name Type Description
action string Action type - must be "update-spec"
workspaceId string Workspace ID
specName string Spec name (unique per workspace, from create-spec)
expirePriorSnapshots boolean Optional, sourceType=compaction only — change whether a run also expires prior snapshots and deletes the files it replaced. See create-spec for what each value means.
targetOption string Optional — change how the target schema is determined. See create-spec for what each value means.
targetTables array Optional — new target table name(s). Exactly one entry for sourceType=tables.
targetSchemaFileName string Optional — new target schema file name (upload it via the returned signedUrls, and include "schemaFile" in changedFiles).
sampleFileName string Optional, sourceType=file only — new sample file name (upload via signedUrls; include "sampleFile" in changedFiles).
formatFileName string Optional, sourceType=file only — new format file name (upload via signedUrls; include "formatFile" in changedFiles).
sourceTables array Optional, sourceType=tables only — change the source table name(s) the generated query reads from.
merge boolean Optional — change merge/upsert mode.
computeSize string Optional — change processing power. See create-spec for details.
additionalPrompt string Optional — change the AI instructions used at the next start-analysis.
description string Optional — change the spec's description.
lastRunTs string Optional, sourceType=tables only. Overrides the watermark table_job.py uses as the `:last_run_ts` lower bound in the generated SQL (normally this is set automatically to the start ts of the spec's own
changedFiles array Which of sampleFileName/formatFileName/targetSchemaFileName are being replaced — only those get a presigned upload URL in the response.
View JSON Schema on GitHub

JSON Schema

dpf-it-com-update-spec-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/dpf-it-com/json-schema/dpf-it-com-update-spec-request-schema.json",
  "title": "Update Spec",
  "description": "Updates an existing spec's mutable fields. Only fields present in the request are\nchanged; omitted fields keep their current value. This only saves the settings — it does\nNOT regenerate code/SQL or re-run anything by itself. Call `start-analysis` afterward to\ndo that (the workspace.html UI always does both together as \"Update & Re-process\").\n\n`sourceType` is fixed at creation and cannot be changed here. `sampleFileName`/\n`formatFileName` only apply to sourceType=file specs; `lastRunTs` only applies to\nsourceType=tables specs; `sourceTables` applies to both sourceType=tables and\nsourceType=compaction. A sourceType=compaction spec accepts only `sourceTables`,\n`expirePriorSnapshots`, `computeSize` and `description` — sending a target field,\na file field or `merge` returns 400, since it has none of those.\n",
  "x-generated": "2026-11-06",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/dpf-it-com-openapi.yml#/components/schemas/UpdateSpecRequest",
  "type": "object",
  "required": [
    "action",
    "workspaceId",
    "specName"
  ],
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "update-spec"
      ],
      "description": "Action type - must be \"update-spec\""
    },
    "workspaceId": {
      "type": "string",
      "format": "uuid",
      "description": "Workspace ID"
    },
    "specName": {
      "type": "string",
      "description": "Spec name (unique per workspace, from create-spec)"
    },
    "expirePriorSnapshots": {
      "type": "boolean",
      "description": "Optional, sourceType=compaction only — change whether a run also expires prior\nsnapshots and deletes the files it replaced. See create-spec for what each\nvalue means.\n"
    },
    "targetOption": {
      "type": "string",
      "enum": [
        "existing-tables",
        "target-schema-file",
        "auto-infer"
      ],
      "description": "Optional — change how the target schema is determined. See create-spec for what each value means."
    },
    "targetTables": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional — new target table name(s). Exactly one entry for sourceType=tables."
    },
    "targetSchemaFileName": {
      "type": "string",
      "description": "Optional — new target schema file name (upload it via the returned signedUrls, and include \"schemaFile\" in changedFiles)."
    },
    "sampleFileName": {
      "type": "string",
      "description": "Optional, sourceType=file only — new sample file name (upload via signedUrls; include \"sampleFile\" in changedFiles)."
    },
    "formatFileName": {
      "type": "string",
      "description": "Optional, sourceType=file only — new format file name (upload via signedUrls; include \"formatFile\" in changedFiles)."
    },
    "sourceTables": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional, sourceType=tables only — change the source table name(s) the generated query reads from."
    },
    "merge": {
      "type": "boolean",
      "description": "Optional — change merge/upsert mode."
    },
    "computeSize": {
      "type": "string",
      "enum": [
        "small",
        "large"
      ],
      "description": "Optional — change processing power. See create-spec for details."
    },
    "additionalPrompt": {
      "type": "string",
      "description": "Optional — change the AI instructions used at the next start-analysis.",
      "maxLength": 2000
    },
    "description": {
      "type": "string",
      "description": "Optional — change the spec's description.",
      "maxLength": 1000
    },
    "lastRunTs": {
      "type": "string",
      "format": "date-time",
      "description": "Optional, sourceType=tables only. Overrides the watermark table_job.py uses as the\n`:last_run_ts` lower bound in the generated SQL (normally this is set automatically to\nthe start ts of the spec's own last successful run). Set this to a past timestamp to\nforce the next run to reprocess data from that point on — e.g. to backfill after a bug\nfix, or replay a window that was missed. Must be a valid ISO 8601 timestamp.\n"
    },
    "changedFiles": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "sampleFile",
          "formatFile",
          "schemaFile"
        ]
      },
      "description": "Which of sampleFileName/formatFileName/targetSchemaFileName are being replaced — only those get a presigned upload URL in the response."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/dpf-it-com-update-spec-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.