Apache Airflow · Schema

DAG

DAG

ApacheDAGData PipelineETLOpen SourceOrchestrationPythonSchedulingWorkflow

Properties

Name Type Description
dag_id string The ID of the DAG.
default_view string Default view of the DAG inside the webserver *New in version 2.3.0*
description string User-provided DAG description, which can consist of several sentences or paragraphs that describe DAG contents.
file_token string The key containing the encrypted path to the file. Encryption and decryption take place only on the server. This prevents the client from reading an non-DAG file. This also ensures API extensibility,
fileloc string The absolute path to the file.
has_import_errors boolean Whether the DAG has import errors *New in version 2.3.0*
has_task_concurrency_limits boolean Whether the DAG has task concurrency limits *New in version 2.3.0*
is_active boolean Whether the DAG is currently seen by the scheduler(s). *New in version 2.1.1* *Changed in version 2.2.0*: Field is read-only.
is_paused boolean Whether the DAG is paused.
is_subdag boolean Whether the DAG is SubDAG.
last_expired string Time when the DAG last received a refresh signal (e.g. the DAG's "refresh" button was clicked in the web UI) *New in version 2.3.0*
last_parsed_time string The last time the DAG was parsed. *New in version 2.3.0*
last_pickled string The last time the DAG was pickled. *New in version 2.3.0*
max_active_runs integer Maximum number of active DAG runs for the DAG *New in version 2.3.0*
max_active_tasks integer Maximum number of active tasks that can be run on the DAG *New in version 2.3.0*
next_dagrun string The logical date of the next dag run. *New in version 2.3.0*
next_dagrun_create_after string Earliest time at which this ``next_dagrun`` can be created. *New in version 2.3.0*
next_dagrun_data_interval_end string The end of the interval of the next dag run. *New in version 2.3.0*
next_dagrun_data_interval_start string The start of the interval of the next dag run. *New in version 2.3.0*
owners array
pickle_id string Foreign key to the latest pickle_id *New in version 2.3.0*
root_dag_id string If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, null.
schedule_interval object
scheduler_lock boolean Whether (one of) the scheduler is scheduling this DAG at the moment *New in version 2.3.0*
tags array List of tags.
timetable_description string Timetable/Schedule Interval description. *New in version 2.3.0*
View JSON Schema on GitHub

JSON Schema

openapi.yaml-dag-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/apache-airflow/refs/heads/main/json-schema/openapi.yaml-dag-schema.json",
  "title": "DAG",
  "description": "DAG",
  "type": "object",
  "properties": {
    "dag_id": {
      "description": "The ID of the DAG.",
      "readOnly": true,
      "type": "string"
    },
    "default_view": {
      "description": "Default view of the DAG inside the webserver\n\n*New in version 2.3.0*\n",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "description": {
      "description": "User-provided DAG description, which can consist of several sentences or paragraphs that describe DAG contents.\n",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "file_token": {
      "description": "The key containing the encrypted path to the file. Encryption and decryption take place only on the server. This prevents the client from reading an non-DAG file. This also ensures API extensibility, because the format of encrypted data may change.\n",
      "readOnly": true,
      "type": "string"
    },
    "fileloc": {
      "description": "The absolute path to the file.",
      "readOnly": true,
      "type": "string"
    },
    "has_import_errors": {
      "description": "Whether the DAG has import errors\n\n*New in version 2.3.0*\n",
      "nullable": true,
      "readOnly": true,
      "type": "boolean"
    },
    "has_task_concurrency_limits": {
      "description": "Whether the DAG has task concurrency limits\n\n*New in version 2.3.0*\n",
      "nullable": true,
      "readOnly": true,
      "type": "boolean"
    },
    "is_active": {
      "description": "Whether the DAG is currently seen by the scheduler(s).\n\n*New in version 2.1.1*\n\n*Changed in version 2.2.0*: Field is read-only.\n",
      "nullable": true,
      "readOnly": true,
      "type": "boolean"
    },
    "is_paused": {
      "description": "Whether the DAG is paused.",
      "nullable": true,
      "type": "boolean"
    },
    "is_subdag": {
      "description": "Whether the DAG is SubDAG.",
      "readOnly": true,
      "type": "boolean"
    },
    "last_expired": {
      "description": "Time when the DAG last received a refresh signal\n(e.g. the DAG's \"refresh\" button was clicked in the web UI)\n\n*New in version 2.3.0*\n",
      "format": "date-time",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "last_parsed_time": {
      "description": "The last time the DAG was parsed.\n\n*New in version 2.3.0*\n",
      "format": "date-time",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "last_pickled": {
      "description": "The last time the DAG was pickled.\n\n*New in version 2.3.0*\n",
      "format": "date-time",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "max_active_runs": {
      "description": "Maximum number of active DAG runs for the DAG\n\n*New in version 2.3.0*\n",
      "nullable": true,
      "readOnly": true,
      "type": "integer"
    },
    "max_active_tasks": {
      "description": "Maximum number of active tasks that can be run on the DAG\n\n*New in version 2.3.0*\n",
      "nullable": true,
      "readOnly": true,
      "type": "integer"
    },
    "next_dagrun": {
      "description": "The logical date of the next dag run.\n\n*New in version 2.3.0*\n",
      "format": "date-time",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "next_dagrun_create_after": {
      "description": "Earliest time at which this ``next_dagrun`` can be created.\n\n*New in version 2.3.0*\n",
      "format": "date-time",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "next_dagrun_data_interval_end": {
      "description": "The end of the interval of the next dag run.\n\n*New in version 2.3.0*\n",
      "format": "date-time",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "next_dagrun_data_interval_start": {
      "description": "The start of the interval of the next dag run.\n\n*New in version 2.3.0*\n",
      "format": "date-time",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "owners": {
      "items": {
        "type": "string"
      },
      "readOnly": true,
      "type": "array"
    },
    "pickle_id": {
      "description": "Foreign key to the latest pickle_id\n\n*New in version 2.3.0*\n",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "root_dag_id": {
      "description": "If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, null.",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    },
    "schedule_interval": {
      "$ref": "#/components/schemas/ScheduleInterval"
    },
    "scheduler_lock": {
      "description": "Whether (one of) the scheduler is scheduling this DAG at the moment\n\n*New in version 2.3.0*\n",
      "nullable": true,
      "readOnly": true,
      "type": "boolean"
    },
    "tags": {
      "description": "List of tags.",
      "items": {
        "$ref": "#/components/schemas/Tag"
      },
      "nullable": true,
      "readOnly": true,
      "type": "array"
    },
    "timetable_description": {
      "description": "Timetable/Schedule Interval description.\n\n*New in version 2.3.0*\n",
      "nullable": true,
      "readOnly": true,
      "type": "string"
    }
  }
}