{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/unity-catalog/main/json-schema/unity-catalog-delta-commit-schema.json",
  "title": "DeltaCommit",
  "description": "Request body for committing changes to a specified Delta table. At least one of commit_info and latest_backfilled_version must be present.",
  "x-generated": "2026-10-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/unitycatalog-all.yaml#/components/schemas/DeltaCommit",
  "type": "object",
  "properties": {
    "table_id": {
      "type": "string",
      "description": "The ID of the table to commit to. This ID uniquely identifies a table."
    },
    "table_uri": {
      "type": "string",
      "description": "The URI of the storage location of the table. If the table_id exists but the table_uri is \ndifferent from the one previously registered (e.g., if the client moved the table), the request will fail.\nExample: s3://bucket-name/tables/some-table-id\n"
    },
    "commit_info": {
      "$ref": "#/$defs/DeltaCommitInfo"
    },
    "latest_backfilled_version": {
      "type": "integer",
      "format": "int64",
      "description": "The highest version of the commits that have been backfilled for this table; meaning UC no longer \nneeds to keep track of commits of versions <= this version.\n"
    },
    "metadata": {
      "$ref": "#/$defs/DeltaMetadata"
    },
    "uniform": {
      "$ref": "#/$defs/DeltaUniform",
      "description": "Optional UniForm metadata to be committed alongside this Delta commit. Whether this field is\nstrictly required by a UC API compatible implementation is left up to the implementation.\nIt is set by UniForm conversion processes after converting a Delta commit. When set, \nUC will atomically update the table's format-specific metadata (e.g. DeltaUniformIceberg),\nkeeping the conversion state synchronized with the Delta version.\nUniform enables Delta tables to be read by other table formats (e.g., Iceberg) without data conversion.\nIndependent of the `metadata` field, both can be provided together or separately.\n"
    }
  },
  "required": [
    "table_id",
    "table_uri"
  ],
  "$defs": {
    "ColumnInfo": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of Column.",
          "type": "string"
        },
        "type_text": {
          "description": "Full data type specification as SQL/catalogString text.",
          "type": "string"
        },
        "type_json": {
          "description": "Full data type specification, JSON-serialized.",
          "type": "string"
        },
        "type_name": {
          "$ref": "#/$defs/ColumnTypeName"
        },
        "type_precision": {
          "description": "Digits of precision; required for DecimalTypes.",
          "type": "integer",
          "format": "int32"
        },
        "type_scale": {
          "description": "Digits to right of decimal; Required for DecimalTypes.",
          "type": "integer",
          "format": "int32"
        },
        "type_interval_type": {
          "description": "Format of IntervalType.",
          "type": "string"
        },
        "position": {
          "description": "Ordinal position of column (starting at position 0).",
          "type": "integer",
          "format": "int32"
        },
        "comment": {
          "description": "User-provided free-form text description.",
          "type": "string"
        },
        "nullable": {
          "description": "Whether field may be Null.",
          "type": "boolean",
          "default": "true"
        },
        "partition_index": {
          "description": "Partition index for column.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ColumnInfos": {
      "type": "object",
      "description": "The schema of the table.",
      "properties": {
        "columns": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ColumnInfo"
          },
          "maxItems": 32768,
          "description": "The array of column descriptions."
        }
      }
    },
    "ColumnTypeName": {
      "description": "Name of type (INT, STRUCT, MAP, etc.).",
      "type": "string",
      "enum": [
        "BOOLEAN",
        "BYTE",
        "SHORT",
        "INT",
        "LONG",
        "FLOAT",
        "DOUBLE",
        "DATE",
        "TIMESTAMP",
        "TIMESTAMP_NTZ",
        "STRING",
        "BINARY",
        "DECIMAL",
        "INTERVAL",
        "ARRAY",
        "STRUCT",
        "MAP",
        "VARIANT",
        "CHAR",
        "NULL",
        "USER_DEFINED_TYPE",
        "TABLE_TYPE"
      ]
    },
    "DeltaCommitInfo": {
      "type": "object",
      "description": "Represents a Delta commit version.",
      "properties": {
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "The version of this commit."
        },
        "timestamp": {
          "type": "integer",
          "format": "int64",
          "description": "The timestamp for when the commit was made. This is the in-commit timestamp as produced by the Delta client writing to the table."
        },
        "file_name": {
          "type": "string",
          "description": "The filename of the UUID-based commit file."
        },
        "file_size": {
          "type": "integer",
          "format": "int64",
          "description": "The size of the commit file in bytes."
        },
        "file_modification_timestamp": {
          "type": "integer",
          "format": "int64",
          "description": "The modification time of the commit file. This is the mod time of the file as written to the file system."
        }
      },
      "required": [
        "version",
        "timestamp",
        "file_name",
        "file_size",
        "file_modification_timestamp"
      ]
    },
    "DeltaCommitMetadataProperties": {
      "description": "The properties of the Delta table. Updated by UC if set.",
      "type": "object",
      "properties": {
        "properties": {
          "$ref": "#/$defs/SecurablePropertiesMap"
        }
      }
    },
    "DeltaMetadata": {
      "description": "Represents a Delta metadata action (see https://github.com/delta-io/delta/blob/master/PROTOCOL.md#change-metadata for more information).",
      "properties": {
        "description": {
          "type": "string",
          "description": "The table comment."
        },
        "schema": {
          "$ref": "#/$defs/ColumnInfos"
        },
        "properties": {
          "$ref": "#/$defs/DeltaCommitMetadataProperties"
        }
      }
    },
    "DeltaUniform": {
      "type": "object",
      "description": "Uniform metadata that can be atomically committed alongside a Delta commit.\nUniform enables Delta tables to be read by other table formats (e.g. Iceberg)\nwithout data conversion. When this message is provided in a Commit request,\nUC will atomically update the table's format-specific metadata during the commit.\n",
      "properties": {
        "iceberg": {
          "$ref": "#/$defs/DeltaUniformIceberg",
          "description": "Metadata for Delta UniForm Iceberg conversion."
        }
      },
      "required": [
        "iceberg"
      ]
    },
    "DeltaUniformIceberg": {
      "type": "object",
      "description": "Iceberg conversion metadata tracking the Delta-to-Iceberg conversion state.\nIt contains the metadata location pointer, converted Delta version, timestamp, and \noptional base converted Delta version of the corresponding conversion.\n",
      "properties": {
        "metadata_location": {
          "type": "string",
          "format": "uri",
          "description": "The latest Iceberg metadata location.\nExample: s3://abc/def/metadata/v1.json\n"
        },
        "converted_delta_version": {
          "type": "integer",
          "format": "int64",
          "description": "The Delta version that was converted to Iceberg to produce the Iceberg metadata location.\nIt should match the Delta version in the commit info.\nExample: 1044\n"
        },
        "converted_delta_timestamp": {
          "type": "string",
          "description": "The timestamp that Delta finished conversion to produce the Iceberg metadata location.\nThe string must represent a valid instant in UTC with ISO 8601 format.\nExample: 2025-01-04T03:13:11.423Z\n"
        },
        "base_converted_delta_version": {
          "type": "integer",
          "format": "int64",
          "description": "Optional Delta version used to incrementally convert Delta changes to Iceberg changes to\nproduce the latest Iceberg metadata at the metadata_location.\nExample: 1042\n"
        }
      },
      "required": [
        "metadata_location",
        "converted_delta_version",
        "converted_delta_timestamp"
      ]
    },
    "SecurablePropertiesMap": {
      "description": "A map of key-value properties attached to the securable.",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  }
}