{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://databuild.example.com/schemas/v1", "title": "DataBuild Core Schemas", "description": "Schema definitions for DataBuild core components", "definitions": { "DepType": { "type": "string", "enum": ["query", "materialize"], "description": "The type of dependency" }, "DataDep": { "type": "object", "required": ["depType", "ref"], "properties": { "depType": { "$ref": "#/definitions/DepType" }, "ref": { "type": "string" } } }, "JobConfig": { "type": "object", "required": ["outputs", "inputs","args","env"], "properties": { "outputs": { "type": "array", "items": { "type": "string" }, "description": "The partitions that this parameterization produces" }, "inputs": { "type": "array", "items": { "$ref": "#/definitions/DataDep" }, "description": "Required data dependencies" }, "args": { "type": "array", "items": { "type": "string" }, "description": "Command line arguments" }, "env": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Environment variables" } } }, "PartitionManifest": { "type": "object", "required": ["outputs", "inputs", "startTime", "endTime", "config"], "properties": { "outputs": { "type": "array", "items": { "type": "string" }, "description": "The refs of the partitions produced by this job" }, "inputs": { "type": "array", "items": { "$ref": "#/definitions/PartitionManifest" }, "description": "Input partition manifests" }, "startTime": { "type": "integer", "format": "int64", "description": "Start time of job execution (Unix timestamp)" }, "endTime": { "type": "integer", "format": "int64", "description": "End time of job execution (Unix timestamp)" }, "config": { "$ref": "#/definitions/JobConfig", "description": "The configuration used to run the job" } } }, "JobGraph": { "type": "object", "required": ["outputs", "nodes"], "properties": { "outputs": { "type": "array", "items": { "type": "string" }, "description": "The output partitions to be produced by this graph" }, "nodes": { "type": "array", "items": { "$ref": "#/definitions/JobConfig" }, "description": "The job configurations that make up this graph" } } } } }