docs-archive/apache-airflow/2.9.1/_specs/v1.yaml (5,094 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. --- openapi: 3.0.3 info: title: "Airflow API (Stable)" description: | # Overview To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases. Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ``` ## Resources The term `resource` refers to a single type of object in the Airflow metadata. An API is broken up by its endpoint's corresponding resource. The name of a resource is typically plural and expressed in camelCase. Example: `dagRuns`. Resource names are used as part of endpoint URLs, as well as in API parameters and responses. ## CRUD Operations The platform supports **C**reate, **R**ead, **U**pdate, and **D**elete operations on most resources. You can review the standards for these operations and their standard parameters below. Some endpoints have special behavior as exceptions. ### Create To create a resource, you typically submit an HTTP `POST` request with the resource's required metadata in the request body. The response returns a `201 Created` response code upon success with the resource's metadata, including its internal `id`, in the response body. ### Read The HTTP `GET` request can be used to read a resource or to list a number of resources. A resource's `id` can be submitted in the request parameters to read a specific resource. The response usually returns a `200 OK` response code upon success, with the resource's metadata in the response body. If a `GET` request does not include a specific resource `id`, it is treated as a list request. The response usually returns a `200 OK` response code upon success, with an object containing a list of resources' metadata in the response body. When reading resources, some common query parameters are usually available. e.g.: ``` v1/connections?limit=25&offset=25 ``` |Query Parameter|Type|Description| |---------------|----|-----------| |limit|integer|Maximum number of objects to fetch. Usually 25 by default| |offset|integer|Offset after which to start returning objects. For use with limit query parameter.| ### Update Updating a resource requires the resource `id`, and is typically done using an HTTP `PATCH` request, with the fields to modify in the request body. The response usually returns a `200 OK` response code upon success, with information about the modified resource in the response body. ### Delete Deleting a resource requires the resource `id` and is typically executed via an HTTP `DELETE` request. The response usually returns a `204 No Content` response code upon success. ## Conventions - Resource names are plural and expressed in camelCase. - Names are consistent between URL parameter name and field name. - Field names are in snake_case. ```json { "description": "string", "name": "string", "occupied_slots": 0, "open_slots": 0 "queued_slots": 0, "running_slots": 0, "scheduled_slots": 0, "slots": 0, } ``` ### Update Mask Update mask is available as a query parameter in patch endpoints. It is used to notify the API which fields you want to update. Using `update_mask` makes it easier to update objects by helping the server know which fields to update in an object instead of updating all fields. The update request ignores any fields that aren't specified in the field mask, leaving them with their current values. Example: ``` resource = request.get('/resource/my-id').json() resource['my_field'] = 'new-value' request.patch('/resource/my-id?update_mask=my_field', data=json.dumps(resource)) ``` ## Versioning and Endpoint Lifecycle - API versioning is not synchronized to specific releases of the Apache Airflow. - APIs are designed to be backward compatible. - Any changes to the API will first go through a deprecation phase. # Trying the API You can use a third party client, such as [curl](https://curl.haxx.se/), [HTTPie](https://httpie.org/), [Postman](https://www.postman.com/) or [the Insomnia rest client](https://insomnia.rest/) to test the Apache Airflow API. Note that you will need to pass credentials data. For e.g., here is how to pause a DAG with [curl](https://curl.haxx.se/), when basic authorization is used: ```bash curl -X PATCH 'https://example.com/api/v1/dags/{dag_id}?update_mask=is_paused' \ -H 'Content-Type: application/json' \ --user "username:password" \ -d '{ "is_paused": true }' ``` Using a graphical tool such as [Postman](https://www.postman.com/) or [Insomnia](https://insomnia.rest/), it is possible to import the API specifications directly: 1. Download the API specification by clicking the **Download** button at the top of this document 2. Import the JSON specification in the graphical tool of your choice. - In *Postman*, you can click the **import** button at the top - With *Insomnia*, you can just drag-and-drop the file on the UI Note that with *Postman*, you can also generate code snippets by selecting a request and clicking on the **Code** button. ## Enabling CORS [Cross-origin resource sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) is a browser security feature that restricts HTTP requests that are initiated from scripts running in the browser. For details on enabling/configuring CORS, see [Enabling CORS](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html). # Authentication To be able to meet the requirements of many organizations, Airflow supports many authentication methods, and it is even possible to add your own method. If you want to check which auth backend is currently set, you can use `airflow config get-value api auth_backends` command as in the example below. ```bash $ airflow config get-value api auth_backends airflow.api.auth.backend.basic_auth ``` The default is to deny all requests. For details on configuring the authentication, see [API Authorization](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html). # Errors We follow the error response format proposed in [RFC 7807](https://tools.ietf.org/html/rfc7807) also known as Problem Details for HTTP APIs. As with our normal API responses, your client must be prepared to gracefully handle additional members of the response. ## Unauthenticated This indicates that the request has not been applied because it lacks valid authentication credentials for the target resource. Please check that you have valid credentials. ## PermissionDenied This response means that the server understood the request but refuses to authorize it because it lacks sufficient rights to the resource. It happens when you do not have the necessary permission to execute the action you performed. You need to get the appropriate permissions in other to resolve this error. ## BadRequest This response means that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). To resolve this, please ensure that your syntax is correct. ## NotFound This client error response indicates that the server cannot find the requested resource. ## MethodNotAllowed Indicates that the request method is known by the server but is not supported by the target resource. ## NotAcceptable The target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request, and the server is unwilling to supply a default representation. ## AlreadyExists The request could not be completed due to a conflict with the current state of the target resource, e.g. the resource it tries to create already exists. ## Unknown This means that the server encountered an unexpected condition that prevented it from fulfilling the request. version: "2.9.1" license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html contact: name: Apache Software Foundation url: https://airflow.apache.org email: dev@airflow.apache.org servers: - url: /api/v1 description: Apache Airflow Stable API. paths: # Database entities /connections: get: summary: List connections x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint operationId: get_connections tags: [Connection] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/ConnectionCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" post: summary: Create a connection x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint operationId: post_connection tags: [Connection] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Connection" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Connection" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /connections/{connection_id}: parameters: - $ref: "#/components/parameters/ConnectionID" get: summary: Get a connection x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint operationId: get_connection tags: [Connection] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Connection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" patch: summary: Update a connection x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint operationId: patch_connection tags: [Connection] parameters: - $ref: "#/components/parameters/UpdateMask" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Connection" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Connection" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" delete: summary: Delete a connection x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint operationId: delete_connection tags: [Connection] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /connections/test: post: summary: Test a connection description: | Test a connection. For security reasons, the test connection functionality is disabled by default across Airflow UI, API and CLI. For more information on capabilities of users, see the documentation: https://airflow.apache.org/docs/apache-airflow/stable/security/security_model.html#capabilities-of-authenticated-ui-users. It is strongly advised to not enable the feature until you make sure that only highly trusted UI/API users have "edit connection" permissions. Set the "test_connection" flag to "Enabled" in the "core" section of Airflow configuration (airflow.cfg) to enable testing of collections. It can also be controlled by the environment variable `AIRFLOW__CORE__TEST_CONNECTION`. *New in version 2.2.0* x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint operationId: test_connection tags: [Connection] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Connection" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/ConnectionTest" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags: get: summary: List DAGs description: > List DAGs in the database. `dag_id_pattern` can be set to match dags of a specific pattern x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint operationId: get_dags tags: [DAG] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" - $ref: "#/components/parameters/FilterTags" - $ref: "#/components/parameters/OnlyActive" - $ref: "#/components/parameters/Paused" - $ref: "#/components/parameters/ReturnFields" - name: dag_id_pattern in: query schema: type: string required: false description: | If set, only return DAGs with dag_ids matching this pattern. responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAGCollection" "401": $ref: "#/components/responses/Unauthenticated" patch: summary: Update DAGs description: > Update DAGs of a given dag_id_pattern using UpdateMask. This endpoint allows specifying `~` as the dag_id_pattern to update all DAGs. *New in version 2.3.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint operationId: patch_dags parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/FilterTags" - $ref: "#/components/parameters/UpdateMask" - $ref: "#/components/parameters/OnlyActive" - name: dag_id_pattern in: query schema: type: string required: true description: | If set, only update DAGs with dag_ids matching this pattern. tags: [DAG] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DAG" example: is_paused: true responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAGCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}: parameters: - $ref: "#/components/parameters/DAGID" get: summary: Get basic information about a DAG description: > Presents only information available in database (DAGModel). If you need detailed information, consider using GET /dags/{dag_id}/details. x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint operationId: get_dag tags: [DAG] parameters: - $ref: "#/components/parameters/ReturnFields" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAG" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" patch: summary: Update a DAG x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint operationId: patch_dag parameters: - $ref: "#/components/parameters/UpdateMask" tags: [DAG] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DAG" example: is_paused: true responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAG" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" delete: summary: Delete a DAG description: | Deletes all metadata related to the DAG, including finished DAG Runs and Tasks. Logs are not deleted. This action cannot be undone. *New in version 2.2.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint operationId: delete_dag tags: [DAG] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" "409": $ref: "#/components/responses/AlreadyExists" /dags/{dag_id}/clearTaskInstances: parameters: - $ref: "#/components/parameters/DAGID" post: summary: Clear a set of task instances description: > Clears a set of task instances associated with the DAG for a specified date range. x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: post_clear_task_instances tags: [DAG] requestBody: description: Parameters of action required: true content: application/json: schema: $ref: "#/components/schemas/ClearTaskInstances" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstanceReferenceCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/setNote: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/TaskID" patch: summary: Update the TaskInstance note. description: | Update the manual user note of a non-mapped Task Instance. *New in version 2.5.0* x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: set_task_instance_note tags: [TaskInstance] requestBody: description: Parameters of set Task Instance note. required: true content: application/json: schema: $ref: "#/components/schemas/SetTaskInstanceNote" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstance" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" ? /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}/setNote : parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/TaskID" - $ref: "#/components/parameters/MapIndex" patch: summary: Update the TaskInstance note. description: | Update the manual user note of a mapped Task Instance. *New in version 2.5.0* x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: set_mapped_task_instance_note tags: [TaskInstance] requestBody: description: Parameters of set Task Instance note. required: true content: application/json: schema: $ref: "#/components/schemas/SetTaskInstanceNote" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstance" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/updateTaskInstancesState: parameters: - $ref: "#/components/parameters/DAGID" post: summary: Set a state of task instances description: > Updates the state for multiple task instances simultaneously. x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: post_set_task_instances_state tags: [DAG] requestBody: description: Parameters of action required: true content: application/json: schema: $ref: "#/components/schemas/UpdateTaskInstancesState" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstanceReferenceCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/dagRuns: parameters: - $ref: "#/components/parameters/DAGID" get: summary: List DAG runs description: > This endpoint allows specifying `~` as the dag_id to retrieve DAG runs for all DAGs. x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint operationId: get_dag_runs tags: [DAGRun] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/FilterExecutionDateGTE" - $ref: "#/components/parameters/FilterExecutionDateLTE" - $ref: "#/components/parameters/FilterStartDateGTE" - $ref: "#/components/parameters/FilterStartDateLTE" - $ref: "#/components/parameters/FilterEndDateGTE" - $ref: "#/components/parameters/FilterEndDateLTE" - $ref: "#/components/parameters/FilterUpdatedAtGTE" - $ref: "#/components/parameters/FilterUpdatedAtLTE" - $ref: "#/components/parameters/FilterState" - $ref: "#/components/parameters/OrderBy" - $ref: "#/components/parameters/ReturnFields" responses: "200": description: List of DAG runs. content: application/json: schema: $ref: "#/components/schemas/DAGRunCollection" "401": $ref: "#/components/responses/Unauthenticated" post: summary: Trigger a new DAG run. description: > This will initiate a dagrun. If DAG is paused then dagrun state will remain queued, and the task won't run. x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint operationId: post_dag_run tags: [DAGRun] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DAGRun" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAGRun" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "409": $ref: "#/components/responses/AlreadyExists" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/~/dagRuns/list: post: summary: List DAG runs (batch) description: > This endpoint is a POST to allow filtering across a large number of DAG IDs, where as a GET it would run in to maximum HTTP request URL length limit. x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint operationId: get_dag_runs_batch tags: [DAGRun] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ListDagRunsForm" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAGRunCollection" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /dags/{dag_id}/dagRuns/{dag_run_id}: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" get: summary: Get a DAG run x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint operationId: get_dag_run tags: [DAGRun] parameters: - $ref: "#/components/parameters/ReturnFields" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAGRun" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" delete: summary: Delete a DAG run x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint operationId: delete_dag_run tags: [DAGRun] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" patch: summary: Modify a DAG run description: | Modify a DAG run. *New in version 2.2.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint operationId: update_dag_run_state tags: [DAGRun] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/UpdateDagRunState" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAGRun" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/dagRuns/{dag_run_id}/clear: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" post: summary: Clear a DAG run description: | Clear a DAG run. *New in version 2.4.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint operationId: clear_dag_run tags: [DAGRun] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ClearDagRun" responses: "200": description: Success. content: application/json: schema: anyOf: - $ref: "#/components/schemas/DAGRun" - $ref: "#/components/schemas/TaskInstanceCollection" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" get: summary: Get dataset events for a DAG run description: | Get datasets for a dag run. *New in version 2.4.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint operationId: get_upstream_dataset_events tags: [DAGRun, Dataset] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DatasetEventCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/dagRuns/{dag_run_id}/setNote: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" patch: summary: Update the DagRun note. description: | Update the manual user note of a DagRun. *New in version 2.5.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint operationId: set_dag_run_note tags: [DAGRun] requestBody: description: Parameters of set DagRun note. required: true content: application/json: schema: $ref: "#/components/schemas/SetDagRunNote" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAGRun" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/datasets/queuedEvent/{uri}: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DatasetURI" get: summary: Get a queued Dataset event for a DAG description: | Get a queued Dataset event for a DAG. *New in version 2.9.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: get_dag_dataset_queued_event parameters: - $ref: "#/components/parameters/Before" tags: [Dataset] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/QueuedEvent" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" delete: summary: Delete a queued Dataset event for a DAG. description: | Delete a queued Dataset event for a DAG. *New in version 2.9.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: delete_dag_dataset_queued_event parameters: - $ref: "#/components/parameters/Before" tags: [Dataset] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/datasets/queuedEvent: parameters: - $ref: "#/components/parameters/DAGID" get: summary: Get queued Dataset events for a DAG. description: | Get queued Dataset events for a DAG. *New in version 2.9.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: get_dag_dataset_queued_events parameters: - $ref: "#/components/parameters/Before" tags: [Dataset] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/QueuedEventCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" delete: summary: Delete queued Dataset events for a DAG. description: | Delete queued Dataset events for a DAG. *New in version 2.9.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: delete_dag_dataset_queued_events parameters: - $ref: "#/components/parameters/Before" tags: [Dataset] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /datasets/queuedEvent/{uri}: parameters: - $ref: "#/components/parameters/DatasetURI" get: summary: Get queued Dataset events for a Dataset. description: | Get queued Dataset events for a Dataset *New in version 2.9.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: get_dataset_queued_events parameters: - $ref: "#/components/parameters/Before" tags: [Dataset] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/QueuedEventCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" delete: summary: Delete queued Dataset events for a Dataset. description: | Delete queued Dataset events for a Dataset. *New in version 2.9.0* x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: delete_dataset_queued_events parameters: - $ref: "#/components/parameters/Before" tags: [Dataset] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /eventLogs: get: summary: List log entries description: List log entries from event log. x-openapi-router-controller: airflow.api_connexion.endpoints.event_log_endpoint operationId: get_event_logs tags: [EventLog] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" - $ref: "#/components/parameters/FilterDAGID" - $ref: "#/components/parameters/FilterTaskID" - $ref: "#/components/parameters/FilterRunID" - $ref: "#/components/parameters/Event" - $ref: "#/components/parameters/Owner" - $ref: "#/components/parameters/Before" - $ref: "#/components/parameters/After" - name: included_events in: query schema: type: string required: false description: | One or more event names separated by commas. If set, only return event logs with events matching this pattern. *New in version 2.9.0* - name: excluded_events in: query schema: type: string required: false description: | One or more event names separated by commas. If set, only return event logs with events that do not match this pattern. *New in version 2.9.0* responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/EventLogCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /eventLogs/{event_log_id}: parameters: - $ref: "#/components/parameters/EventLogID" get: summary: Get a log entry x-openapi-router-controller: airflow.api_connexion.endpoints.event_log_endpoint operationId: get_event_log tags: [EventLog] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/EventLog" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /importErrors: get: summary: List import errors x-openapi-router-controller: airflow.api_connexion.endpoints.import_error_endpoint operationId: get_import_errors tags: [ImportError] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/ImportErrorCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /importErrors/{import_error_id}: parameters: - $ref: "#/components/parameters/ImportErrorID" get: summary: Get an import error x-openapi-router-controller: airflow.api_connexion.endpoints.import_error_endpoint operationId: get_import_error tags: [ImportError] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/ImportError" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /pools: get: summary: List pools x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint operationId: get_pools tags: [Pool] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" responses: "200": description: List of pools. content: application/json: schema: $ref: "#/components/schemas/PoolCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" post: summary: Create a pool x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint operationId: post_pool tags: [Pool] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Pool" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Pool" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /pools/{pool_name}: parameters: - $ref: "#/components/parameters/PoolName" get: summary: Get a pool x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint operationId: get_pool tags: [Pool] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Pool" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" patch: summary: Update a pool x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint operationId: patch_pool tags: [Pool] parameters: - $ref: "#/components/parameters/UpdateMask" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Pool" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Pool" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" "409": $ref: "#/components/responses/AlreadyExists" delete: summary: Delete a pool x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint operationId: delete_pool tags: [Pool] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /providers: get: summary: List providers description: | Get a list of providers. *New in version 2.1.0* x-openapi-router-controller: airflow.api_connexion.endpoints.provider_endpoint operationId: get_providers tags: [Provider] responses: "200": description: List of providers. content: application/json: schema: allOf: - $ref: "#/components/schemas/ProviderCollection" - $ref: "#/components/schemas/CollectionInfo" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/FilterExecutionDateGTE" - $ref: "#/components/parameters/FilterExecutionDateLTE" - $ref: "#/components/parameters/FilterStartDateGTE" - $ref: "#/components/parameters/FilterStartDateLTE" - $ref: "#/components/parameters/FilterEndDateGTE" - $ref: "#/components/parameters/FilterEndDateLTE" - $ref: "#/components/parameters/FilterUpdatedAtGTE" - $ref: "#/components/parameters/FilterUpdatedAtLTE" - $ref: "#/components/parameters/FilterDurationGTE" - $ref: "#/components/parameters/FilterDurationLTE" - $ref: "#/components/parameters/FilterState" - $ref: "#/components/parameters/FilterPool" - $ref: "#/components/parameters/FilterQueue" get: summary: List task instances description: > This endpoint allows specifying `~` as the dag_id, dag_run_id to retrieve DAG runs for all DAGs and DAG runs. x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: get_task_instances tags: [TaskInstance] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstanceCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/TaskID" get: summary: Get a task instance x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: get_task_instance tags: [TaskInstance] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstance" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" patch: summary: Updates the state of a task instance description: > Updates the state for single task instance. *New in version 2.5.0* x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: patch_task_instance tags: [TaskInstance] requestBody: description: Parameters of action required: true content: application/json: schema: $ref: "#/components/schemas/UpdateTaskInstance" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstanceReference" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/TaskID" - $ref: "#/components/parameters/MapIndex" get: summary: Get a mapped task instance description: | Get details of a mapped task instance. *New in version 2.3.0* x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: get_mapped_task_instance tags: [TaskInstance] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstance" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" patch: summary: Updates the state of a mapped task instance description: > Updates the state for single mapped task instance. *New in version 2.5.0* x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: patch_mapped_task_instance tags: [TaskInstance] requestBody: description: Parameters of action content: application/json: schema: $ref: "#/components/schemas/UpdateTaskInstance" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstanceReference" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/listMapped: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/TaskID" get: summary: List mapped task instances description: | Get details of all mapped task instances. *New in version 2.3.0* x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: get_mapped_task_instances tags: [TaskInstance] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/FilterExecutionDateGTE" - $ref: "#/components/parameters/FilterExecutionDateLTE" - $ref: "#/components/parameters/FilterStartDateGTE" - $ref: "#/components/parameters/FilterStartDateLTE" - $ref: "#/components/parameters/FilterEndDateGTE" - $ref: "#/components/parameters/FilterEndDateLTE" - $ref: "#/components/parameters/FilterUpdatedAtGTE" - $ref: "#/components/parameters/FilterUpdatedAtLTE" - $ref: "#/components/parameters/FilterDurationGTE" - $ref: "#/components/parameters/FilterDurationLTE" - $ref: "#/components/parameters/FilterState" - $ref: "#/components/parameters/FilterPool" - $ref: "#/components/parameters/FilterQueue" - $ref: "#/components/parameters/OrderBy" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstanceCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/~/dagRuns/~/taskInstances/list: post: summary: List task instances (batch) description: > List task instances from all DAGs and DAG runs. This endpoint is a POST to allow filtering across a large number of DAG IDs, where as a GET it would run in to maximum HTTP request URL length limits. x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint operationId: get_task_instances_batch tags: [TaskInstance] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ListTaskInstanceForm" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskInstanceCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /variables: get: summary: List variables description: The collection does not contain data. To get data, you must get a single entity. x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint operationId: get_variables tags: [Variable] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/VariableCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" post: summary: Create a variable x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint operationId: post_variables tags: [Variable] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Variable" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Variable" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /variables/{variable_key}: parameters: - $ref: "#/components/parameters/VariableKey" get: summary: Get a variable description: Get a variable by key. x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint operationId: get_variable tags: [Variable] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Variable" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" patch: summary: Update a variable description: Update a variable by key. x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint operationId: patch_variable tags: [Variable] parameters: - $ref: "#/components/parameters/UpdateMask" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Variable" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Variable" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" delete: summary: Delete a variable x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint operationId: delete_variable tags: [Variable] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/TaskID" get: summary: List XCom entries description: This endpoint allows specifying `~` as the dag_id, dag_run_id, task_id to retrieve XCOM entries for for all DAGs, DAG runs and task instances. XCom values won't be returned as they can be large. Use this endpoint to get a list of XCom entries and then fetch individual entry to get value. x-openapi-router-controller: airflow.api_connexion.endpoints.xcom_endpoint operationId: get_xcom_entries tags: [XCom] parameters: - $ref: "#/components/parameters/FilterMapIndex" - $ref: "#/components/parameters/FilterXcomKey" - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/XComCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" ? /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key} : parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/TaskID" - $ref: "#/components/parameters/XComKey" get: summary: Get an XCom entry x-openapi-router-controller: airflow.api_connexion.endpoints.xcom_endpoint operationId: get_xcom_entry tags: [XCom] parameters: - $ref: "#/components/parameters/FilterMapIndex" - in: query name: deserialize schema: type: boolean default: false required: false description: | Whether to deserialize an XCom value when using a custom XCom backend. The XCom API endpoint calls `orm_deserialize_value` by default since an XCom may contain value that is potentially expensive to deserialize in the web server. Setting this to true overrides the consideration, and calls `deserialize_value` instead. This parameter is not meaningful when using the default XCom backend. *New in version 2.4.0* responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/XCom" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" # Non-database resources /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/links: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/TaskID" get: summary: List extra links description: > List extra links for task instance. x-openapi-router-controller: airflow.api_connexion.endpoints.extra_link_endpoint operationId: get_extra_links tags: [TaskInstance] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/ExtraLinkCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" ? /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number} : parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/DAGRunID" - $ref: "#/components/parameters/TaskID" - $ref: "#/components/parameters/TaskTryNumber" - $ref: "#/components/parameters/FullContent" - $ref: "#/components/parameters/FilterMapIndex" - $ref: "#/components/parameters/ContinuationToken" get: summary: Get logs description: | Get logs for a specific task instance and its try number. To get log from specific character position, following way of using URLSafeSerializer can be used. Example: ``` from itsdangerous.url_safe import URLSafeSerializer request_url = f"api/v1/dags/{DAG_ID}/dagRuns/{RUN_ID}/taskInstances/{TASK_ID}/logs/1" key = app.config["SECRET_KEY"] serializer = URLSafeSerializer(key) token = serializer.dumps({"log_pos": 10000}) response = self.client.get( request_url, query_string={"token": token}, headers={"Accept": "text/plain"}, environ_overrides={"REMOTE_USER": "test"}, ) continuation_token = response.json["continuation_token"] metadata = URLSafeSerializer(key).loads(continuation_token) log_pos = metadata["log_pos"] end_of_log = metadata["end_of_log"] ``` If log_pos is passed as 10000 like the above example, it renders the logs starting from char position 10000 to last (not the end as the logs may be tailing behind in running state). This way pagination can be done with metadata as part of the token. x-openapi-router-controller: airflow.api_connexion.endpoints.log_endpoint operationId: get_log tags: [TaskInstance] responses: "200": description: Success. content: application/json: schema: type: object properties: continuation_token: type: string content: type: string text/plain: schema: type: string "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/details: parameters: - $ref: "#/components/parameters/DAGID" get: summary: Get a simplified representation of DAG x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint operationId: get_dag_details description: > The response contains many DAG attributes, so the response can be large. If possible, consider using GET /dags/{dag_id}. tags: [DAG] parameters: - $ref: "#/components/parameters/ReturnFields" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DAGDetail" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/tasks: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/OrderBy" get: summary: Get tasks for DAG x-openapi-router-controller: airflow.api_connexion.endpoints.task_endpoint operationId: get_tasks tags: [DAG] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/TaskCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dags/{dag_id}/tasks/{task_id}: parameters: - $ref: "#/components/parameters/DAGID" - $ref: "#/components/parameters/TaskID" get: summary: Get simplified representation of a task x-openapi-router-controller: airflow.api_connexion.endpoints.task_endpoint operationId: get_task tags: [DAG] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Task" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /dagSources/{file_token}: parameters: - $ref: "#/components/parameters/FileToken" get: summary: Get a source code description: > Get a source code using file token. x-openapi-router-controller: airflow.api_connexion.endpoints.dag_source_endpoint operationId: get_dag_source tags: [DAG] responses: "200": description: Success. content: application/json: schema: type: object properties: content: type: string plain/text: schema: type: string "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" "406": $ref: "#/components/responses/NotAcceptable" /dagWarnings: get: summary: List dag warnings x-openapi-router-controller: airflow.api_connexion.endpoints.dag_warning_endpoint operationId: get_dag_warnings tags: [DagWarning] parameters: - name: dag_id in: query schema: type: string required: false description: If set, only return DAG warnings with this dag_id. - name: warning_type in: query schema: type: string required: false description: If set, only return DAG warnings with this type. - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DagWarningCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /datasets: get: summary: List datasets x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: get_datasets tags: [Dataset] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" - name: uri_pattern in: query schema: type: string required: false description: | If set, only return datasets with uris matching this pattern. - name: dag_ids in: query schema: type: string required: false description: | One or more DAG IDs separated by commas to filter datasets by associated DAGs either consuming or producing. *New in version 2.9.0* responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DatasetCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /datasets/{uri}: parameters: - $ref: "#/components/parameters/DatasetURI" get: summary: Get a dataset description: Get a dataset by uri. x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: get_dataset tags: [Dataset] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Dataset" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /datasets/events: get: summary: Get dataset events description: Get dataset events x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: get_dataset_events tags: [Dataset] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" - $ref: "#/components/parameters/FilterDatasetID" - $ref: "#/components/parameters/FilterSourceDAGID" - $ref: "#/components/parameters/FilterSourceTaskID" - $ref: "#/components/parameters/FilterSourceRunID" - $ref: "#/components/parameters/FilterSourceMapIndex" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/DatasetEventCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" post: summary: Create dataset event description: Create dataset event x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint operationId: create_dataset_event tags: [Dataset] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDatasetEvent' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/DatasetEvent' "400": $ref: "#/components/responses/BadRequest" '401': $ref: '#/components/responses/Unauthenticated' '403': $ref: '#/components/responses/PermissionDenied' '404': $ref: '#/components/responses/NotFound' /config: get: summary: Get current configuration x-openapi-router-controller: airflow.api_connexion.endpoints.config_endpoint operationId: get_config tags: [Config] parameters: - name: section in: query schema: type: string required: false description: If given, only return config of this section. responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Config" example: sections: - name: core options: - key: dags_folder value: /home/user/my-dags-folder - name: smtp options: - key: smtp_host value: localhost - key: smtp_mail_from value: airflow@example.com text/plain: schema: type: string example: | [core] dags_folder = /home/user/my-dags-folder [smtp] smtp_host = localhost smtp_mail_from = airflow@example.com "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /config/section/{section}/option/{option}: get: summary: Get a option from configuration x-openapi-router-controller: airflow.api_connexion.endpoints.config_endpoint operationId: get_value tags: [Config] parameters: - name: section in: path schema: type: string required: true - name: option in: path schema: type: string required: true responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Config" example: sections: - name: core options: - key: dags_folder value: /home/user/my-dags-folder text/plain: schema: type: string example: | [core] dags_folder = /home/user/my-dags-folder "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /health: get: summary: Get instance status description: | Get the status of Airflow's metadatabase, triggerer and scheduler. It includes info about metadatabase and last heartbeat of scheduler and triggerer. x-openapi-router-controller: airflow.api_connexion.endpoints.health_endpoint operationId: get_health tags: [Monitoring] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/HealthInfo" /version: get: summary: Get version information x-openapi-router-controller: airflow.api_connexion.endpoints.version_endpoint operationId: get_version tags: [Monitoring] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/VersionInfo" /plugins: get: summary: Get a list of loaded plugins description: | Get a list of loaded plugins. *New in version 2.1.0* x-openapi-router-controller: airflow.api_connexion.endpoints.plugin_endpoint operationId: get_plugins tags: [Plugin] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" responses: "200": description: Success content: application/json: schema: $ref: "#/components/schemas/PluginCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /roles: get: deprecated: true summary: List roles description: | Get a list of roles. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: get_roles tags: [Role] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/RoleCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" post: deprecated: true summary: Create a role description: | Create a new role. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: post_role tags: [Role] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Role" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Role" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /roles/{role_name}: parameters: - $ref: "#/components/parameters/RoleName" get: deprecated: true summary: Get a role description: | Get a role. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: get_role tags: [Role] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Role" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" patch: deprecated: true summary: Update a role description: | Update a role. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: patch_role tags: [Role] parameters: - $ref: "#/components/parameters/UpdateMask" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Role" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/Role" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" delete: deprecated: true summary: Delete a role description: | Delete a role. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: delete_role tags: [Role] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" /permissions: get: deprecated: true summary: List permissions description: | Get a list of permissions. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: get_permissions tags: [Permission] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/ActionCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" /users: get: deprecated: true summary: List users description: | Get a list of users. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: get_users tags: [User] parameters: - $ref: "#/components/parameters/PageLimit" - $ref: "#/components/parameters/PageOffset" - $ref: "#/components/parameters/OrderBy" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/UserCollection" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" post: deprecated: true summary: Create a user description: | Create a new user with unique username and email. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: post_user tags: [User] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/User" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/User" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "409": $ref: "#/components/responses/AlreadyExists" /users/{username}: parameters: - $ref: "#/components/parameters/Username" get: deprecated: true summary: Get a user description: | Get a user with a specific username. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: get_user tags: [User] responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/UserCollectionItem" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" patch: deprecated: true summary: Update a user description: | Update fields for a user. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: patch_user tags: [User] parameters: - $ref: "#/components/parameters/UpdateMask" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/User" responses: "200": description: Success. content: application/json: schema: $ref: "#/components/schemas/UserCollectionItem" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" delete: deprecated: true summary: Delete a user description: | Delete a user with a specific username. *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for this operation instead.* x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint operationId: delete_user tags: [User] responses: "204": description: Success. "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthenticated" "403": $ref: "#/components/responses/PermissionDenied" "404": $ref: "#/components/responses/NotFound" components: # Reusable schemas (data models) schemas: # Database entities UserCollectionItem: description: | A user object. *New in version 2.1.0* type: object properties: first_name: type: string description: | The user's first name. *Changed in version 2.4.0*: The requirement for this to be non-empty was removed. last_name: type: string description: | The user's last name. *Changed in version 2.4.0*: The requirement for this to be non-empty was removed. username: type: string description: | The username. *Changed in version 2.2.0*: A minimum character length requirement ('minLength') is added. minLength: 1 email: type: string description: | The user's email. *Changed in version 2.2.0*: A minimum character length requirement ('minLength') is added. minLength: 1 active: type: boolean description: Whether the user is active readOnly: true nullable: true last_login: type: string format: datetime description: The last user login readOnly: true nullable: true login_count: type: integer description: The login count readOnly: true nullable: true failed_login_count: type: integer description: The number of times the login failed readOnly: true nullable: true roles: type: array description: | User roles. *Changed in version 2.2.0*: Field is no longer read-only. items: type: object properties: name: type: string nullable: true created_on: type: string format: datetime description: The date user was created readOnly: true nullable: true changed_on: type: string format: datetime description: The date user was changed readOnly: true nullable: true User: type: object description: | A user object with sensitive data. *New in version 2.1.0* allOf: - $ref: "#/components/schemas/UserCollectionItem" - type: object properties: password: type: string writeOnly: true UserCollection: type: object description: | Collection of users. *New in version 2.1.0* allOf: - type: object properties: users: type: array items: $ref: "#/components/schemas/UserCollectionItem" - $ref: "#/components/schemas/CollectionInfo" ConnectionCollectionItem: description: > Connection collection item. The password and extra fields are only available when retrieving a single object due to the sensitivity of this data. type: object properties: connection_id: type: string description: The connection ID. conn_type: type: string description: The connection type. description: type: string description: The description of the connection. nullable: true host: type: string nullable: true description: Host of the connection. login: type: string nullable: true description: Login of the connection. schema: type: string nullable: true description: Schema of the connection. port: type: integer nullable: true description: Port of the connection. ConnectionCollection: type: object description: | Collection of connections. *Changed in version 2.1.0*: 'total_entries' field is added. allOf: - type: object properties: connections: type: array items: $ref: "#/components/schemas/ConnectionCollectionItem" - $ref: "#/components/schemas/CollectionInfo" Connection: description: Full representation of the connection. allOf: - $ref: "#/components/schemas/ConnectionCollectionItem" - type: object properties: password: type: string format: password writeOnly: true description: Password of the connection. extra: type: string nullable: true description: Other values that cannot be put into another field, e.g. RSA keys. ConnectionTest: description: | Connection test results. *New in version 2.2.0* type: object properties: status: type: boolean description: The status of the request. message: type: string description: The success or failure message of the request. DAG: type: object description: DAG properties: dag_id: type: string readOnly: true description: The ID of the DAG. dag_display_name: type: string readOnly: true description: | Human centric display text for the DAG. *New in version 2.9.0* root_dag_id: type: string readOnly: true nullable: true description: If the DAG is SubDAG then it is the top level DAG identifier. Otherwise, null. is_paused: type: boolean nullable: true description: Whether the DAG is paused. is_active: description: | 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. nullable: true readOnly: true type: boolean is_subdag: description: Whether the DAG is SubDAG. type: boolean readOnly: true last_parsed_time: type: string format: date-time readOnly: true nullable: true description: | The last time the DAG was parsed. *New in version 2.3.0* last_pickled: type: string format: date-time readOnly: true nullable: true description: | The last time the DAG was pickled. *New in version 2.3.0* last_expired: type: string format: date-time readOnly: true nullable: true description: | 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* scheduler_lock: type: boolean readOnly: true nullable: true description: | Whether (one of) the scheduler is scheduling this DAG at the moment *New in version 2.3.0* pickle_id: type: string readOnly: true nullable: true description: | Foreign key to the latest pickle_id *New in version 2.3.0* default_view: type: string nullable: true readOnly: true description: | Default view of the DAG inside the webserver *New in version 2.3.0* fileloc: description: The absolute path to the file. type: string readOnly: true file_token: type: string readOnly: true 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. owners: type: array items: type: string readOnly: true description: type: string readOnly: true nullable: true description: > User-provided DAG description, which can consist of several sentences or paragraphs that describe DAG contents. schedule_interval: $ref: "#/components/schemas/ScheduleInterval" timetable_description: type: string readOnly: true nullable: true description: | Timetable/Schedule Interval description. *New in version 2.3.0* tags: description: List of tags. type: array nullable: true items: $ref: "#/components/schemas/Tag" readOnly: true max_active_tasks: type: integer nullable: true readOnly: true description: | Maximum number of active tasks that can be run on the DAG *New in version 2.3.0* max_active_runs: type: integer nullable: true readOnly: true description: | Maximum number of active DAG runs for the DAG *New in version 2.3.0* has_task_concurrency_limits: type: boolean nullable: true readOnly: true description: | Whether the DAG has task concurrency limits *New in version 2.3.0* has_import_errors: type: boolean nullable: true readOnly: true description: | Whether the DAG has import errors *New in version 2.3.0* next_dagrun: type: string format: date-time readOnly: true nullable: true description: | The logical date of the next dag run. *New in version 2.3.0* next_dagrun_data_interval_start: type: string format: date-time readOnly: true nullable: true description: | The start of the interval of the next dag run. *New in version 2.3.0* next_dagrun_data_interval_end: type: string format: date-time readOnly: true nullable: true description: | The end of the interval of the next dag run. *New in version 2.3.0* next_dagrun_create_after: type: string format: date-time readOnly: true nullable: true description: | Earliest time at which this ``next_dagrun`` can be created. *New in version 2.3.0* DAGCollection: description: | Collection of DAGs. *Changed in version 2.1.0*: 'total_entries' field is added. type: object allOf: - type: object properties: dags: type: array items: $ref: "#/components/schemas/DAG" - $ref: "#/components/schemas/CollectionInfo" DAGRun: type: object properties: dag_run_id: type: string nullable: true description: | Run ID. The value of this field can be set only when creating the object. If you try to modify the field of an existing object, the request fails with an BAD_REQUEST error. If not provided, a value will be generated based on execution_date. If the specified dag_run_id is in use, the creation request fails with an ALREADY_EXISTS error. This together with DAG_ID are a unique key. dag_id: type: string readOnly: true logical_date: type: string nullable: true description: | The logical date (previously called execution date). This is the time or interval covered by this DAG run, according to the DAG definition. The value of this field can be set only when creating the object. If you try to modify the field of an existing object, the request fails with an BAD_REQUEST error. This together with DAG_ID are a unique key. *New in version 2.2.0* format: date-time execution_date: type: string nullable: true description: | The execution date. This is the same as logical_date, kept for backwards compatibility. If both this field and logical_date are provided but with different values, the request will fail with an BAD_REQUEST error. *Changed in version 2.2.0*: Field becomes nullable. *Deprecated since version 2.2.0*: Use 'logical_date' instead. format: date-time deprecated: true start_date: type: string format: date-time description: | The start time. The time when DAG run was actually created. *Changed in version 2.1.3*: Field becomes nullable. readOnly: true nullable: true end_date: type: string format: date-time readOnly: true nullable: true data_interval_start: type: string format: date-time description: | The beginning of the interval the DAG run covers. nullable: true data_interval_end: type: string format: date-time description: | The end of the interval the DAG run covers. nullable: true last_scheduling_decision: type: string format: date-time readOnly: true nullable: true run_type: type: string readOnly: true enum: - backfill - manual - scheduled - dataset_triggered state: $ref: "#/components/schemas/DagState" external_trigger: type: boolean readOnly: true conf: type: object description: | JSON object describing additional configuration parameters. The value of this field can be set only when creating the object. If you try to modify the field of an existing object, the request fails with an BAD_REQUEST error. note: type: string description: | Contains manually entered notes by the user about the DagRun. *New in version 2.5.0* nullable: true UpdateDagRunState: type: object description: | Modify the state of a DAG run. *New in version 2.2.0* properties: state: description: The state to set this DagRun type: string enum: - success - failed - queued DAGRunCollection: type: object description: | Collection of DAG runs. *Changed in version 2.1.0*: 'total_entries' field is added. allOf: - type: object properties: dag_runs: type: array items: $ref: "#/components/schemas/DAGRun" - $ref: "#/components/schemas/CollectionInfo" DagWarning: type: object properties: dag_id: type: string readOnly: true description: The dag_id. warning_type: type: string readOnly: true description: The warning type for the dag warning. message: type: string readOnly: true description: The message for the dag warning. timestamp: type: string format: datetime readOnly: true description: The time when this warning was logged. DagWarningCollection: type: object description: | Collection of DAG warnings. allOf: - type: object properties: import_errors: type: array items: $ref: "#/components/schemas/DagWarning" - $ref: "#/components/schemas/CollectionInfo" SetDagRunNote: type: object properties: note: description: Custom notes left by users for this Dag Run. type: string EventLog: type: object description: Log of user operations via CLI or Web UI. properties: event_log_id: description: The event log ID type: integer readOnly: true when: description: The time when these events happened. format: date-time type: string readOnly: true dag_id: description: The DAG ID type: string readOnly: true nullable: true task_id: description: The Task ID type: string readOnly: true nullable: true run_id: description: The DAG Run ID type: string readOnly: true nullable: true event: description: A key describing the type of event. type: string readOnly: true execution_date: description: | When the event was dispatched for an object having execution_date, the value of this field. format: date-time type: string readOnly: true nullable: true owner: description: Name of the user who triggered these events a. type: string readOnly: true extra: description: | Other information that was not included in the other fields, e.g. the complete CLI command. type: string readOnly: true nullable: true EventLogCollection: type: object description: | Collection of event logs. *Changed in version 2.1.0*: 'total_entries' field is added. allOf: - type: object properties: event_logs: type: array items: $ref: "#/components/schemas/EventLog" - $ref: "#/components/schemas/CollectionInfo" ImportError: type: object properties: import_error_id: type: integer readOnly: true description: The import error ID. timestamp: type: string format: datetime readOnly: true description: The time when this error was created. filename: type: string readOnly: true description: The filename stack_trace: type: string readOnly: true description: The full stackstrace.. ImportErrorCollection: type: object description: | Collection of import errors. *Changed in version 2.1.0*: 'total_entries' field is added. allOf: - type: object properties: import_errors: type: array items: $ref: "#/components/schemas/ImportError" - $ref: "#/components/schemas/CollectionInfo" HealthInfo: type: object description: Instance status information. properties: metadatabase: $ref: "#/components/schemas/MetadatabaseStatus" scheduler: $ref: "#/components/schemas/SchedulerStatus" triggerer: $ref: "#/components/schemas/TriggererStatus" dag_processor: $ref: "#/components/schemas/DagProcessorStatus" MetadatabaseStatus: type: object description: The status of the metadatabase. properties: status: $ref: "#/components/schemas/HealthStatus" SchedulerStatus: type: object description: The status and the latest scheduler heartbeat. properties: status: $ref: "#/components/schemas/HealthStatus" latest_scheduler_heartbeat: description: The time the scheduler last did a heartbeat. type: string format: datetime readOnly: true nullable: true TriggererStatus: type: object description: | The status and the latest triggerer heartbeat. *New in version 2.6.2* properties: status: $ref: "#/components/schemas/HealthStatus" latest_triggerer_heartbeat: description: The time the triggerer last did a heartbeat. type: string format: datetime readOnly: true nullable: true DagProcessorStatus: type: object description: | The status and the latest dag processor heartbeat. *New in version 2.6.3* properties: status: $ref: "#/components/schemas/HealthStatus" latest_dag_processor_heartbeat: description: The time the dag processor last did a heartbeat. type: string format: datetime readOnly: true nullable: true Pool: description: The pool type: object properties: name: type: string description: The name of pool. slots: type: integer description: | The maximum number of slots that can be assigned to tasks. One job may occupy one or more slots. occupied_slots: type: integer readOnly: true description: The number of slots used by running/queued tasks at the moment. May include deferred tasks if 'include_deferred' is set to true. running_slots: type: integer readOnly: true description: The number of slots used by running tasks at the moment. queued_slots: type: integer readOnly: true description: The number of slots used by queued tasks at the moment. open_slots: type: integer readOnly: true description: The number of free slots at the moment. scheduled_slots: type: integer readOnly: true description: The number of slots used by scheduled tasks at the moment. deferred_slots: type: integer readOnly: true description: | The number of slots used by deferred tasks at the moment. Relevant if 'include_deferred' is set to true. *New in version 2.7.0* description: type: string description: | The description of the pool. *New in version 2.3.0* nullable: true include_deferred: type: boolean description: | If set to true, deferred tasks are considered when calculating open pool slots. *New in version 2.7.0* PoolCollection: type: object description: | Collection of pools. *Changed in version 2.1.0*: 'total_entries' field is added. allOf: - type: object properties: pools: type: array items: $ref: "#/components/schemas/Pool" - $ref: "#/components/schemas/CollectionInfo" Provider: description: | The provider *New in version 2.1.0* type: object properties: package_name: type: string description: The package name of the provider. description: type: string description: The description of the provider. version: type: string description: The version of the provider. ProviderCollection: description: | Collection of providers. *New in version 2.1.0* type: object properties: providers: type: array items: $ref: "#/components/schemas/Provider" SLAMiss: type: object properties: task_id: type: string readOnly: true description: The task ID. dag_id: type: string description: The DAG ID. execution_date: type: string format: datetime email_sent: type: boolean timestamp: type: string format: datetime description: type: string nullable: true notification_sent: type: boolean nullable: true Trigger: type: object nullable: true properties: id: type: integer classpath: type: string kwargs: type: string created_date: type: string format: datetime triggerer_id: type: integer nullable: true Job: type: object nullable: true properties: id: type: integer dag_id: type: string nullable: true state: type: string nullable: true job_type: type: string nullable: true start_date: type: string format: datetime nullable: true end_date: type: string format: datetime nullable: true latest_heartbeat: type: string format: datetime nullable: true executor_class: type: string nullable: true hostname: type: string nullable: true unixname: type: string nullable: true TaskInstance: type: object properties: task_id: type: string task_display_name: type: string description: | Human centric display text for the task. *New in version 2.9.0* dag_id: type: string dag_run_id: type: string description: | The DagRun ID for this task instance *New in version 2.3.0* execution_date: type: string format: datetime start_date: type: string format: datetime nullable: true end_date: type: string format: datetime nullable: true duration: type: number nullable: true state: $ref: "#/components/schemas/TaskState" try_number: type: integer map_index: type: integer max_tries: type: integer hostname: type: string unixname: type: string pool: type: string pool_slots: type: integer queue: type: string nullable: true priority_weight: type: integer nullable: true operator: type: string nullable: true description: | *Changed in version 2.1.1*: Field becomes nullable. queued_when: type: string nullable: true description: | The datetime that the task enter the state QUEUE, also known as queue_at pid: type: integer nullable: true executor_config: type: string sla_miss: $ref: "#/components/schemas/SLAMiss" rendered_map_index: description: | Rendered name of an expanded task instance, if the task is mapped. *New in version 2.9.0* type: string nullable: true rendered_fields: description: | JSON object describing rendered fields. *New in version 2.3.0* type: object trigger: $ref: "#/components/schemas/Trigger" triggerer_job: $ref: "#/components/schemas/Job" note: type: string description: | Contains manually entered notes by the user about the TaskInstance. *New in version 2.5.0* nullable: true TaskInstanceCollection: type: object description: | Collection of task instances. *Changed in version 2.1.0*: 'total_entries' field is added. allOf: - type: object properties: task_instances: type: array items: $ref: "#/components/schemas/TaskInstance" - $ref: "#/components/schemas/CollectionInfo" TaskInstanceReference: type: object properties: task_id: type: string readOnly: true description: The task ID. dag_id: type: string readOnly: true description: The DAG ID. execution_date: type: string format: datetime readOnly: true dag_run_id: type: string readOnly: true description: The DAG run ID. TaskInstanceReferenceCollection: type: object properties: task_instances: type: array items: $ref: "#/components/schemas/TaskInstanceReference" VariableCollectionItem: description: XCom entry collection item. The value field are only available when retrieving a single object due to the sensitivity of this data. # Divided into two schemas for sensitive data protection type: object properties: key: type: string description: type: string description: | The description of the variable. *New in version 2.4.0* nullable: true VariableCollection: type: object description: | Collection of variables. *Changed in version 2.1.0*: 'total_entries' field is added. allOf: - type: object properties: variables: type: array items: $ref: "#/components/schemas/VariableCollectionItem" - $ref: "#/components/schemas/CollectionInfo" Variable: description: Full representation of Variable allOf: - $ref: "#/components/schemas/VariableCollectionItem" - type: object properties: value: type: string XComCollectionItem: # Divided into two schemas for sensitive data protection type: object description: | XCom entry collection item. The value field is only available when reading a single object due to the size of the value. properties: key: type: string timestamp: type: string format: datetime execution_date: type: string format: datetime map_index: type: integer task_id: type: string dag_id: type: string XComCollection: type: object description: | Collection of XCom entries. *Changed in version 2.1.0*: 'total_entries' field is added. allOf: - type: object properties: xcom_entries: type: array items: $ref: "#/components/schemas/XComCollectionItem" - $ref: "#/components/schemas/CollectionInfo" XCom: description: Full representations of XCom entry. allOf: - $ref: "#/components/schemas/XComCollectionItem" - type: object properties: value: type: string description: The value # Python objects # Based on # airflow/serialization/schema.json # but simplified to make the easier to use and to make backward compatibility easier. DAGDetail: description: | DAG details. For details see: [airflow.models.dag.DAG](https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/models/dag/index.html#airflow.models.dag.DAG) allOf: - $ref: "#/components/schemas/DAG" - type: object properties: timezone: $ref: "#/components/schemas/Timezone" nullable: true catchup: type: boolean readOnly: true nullable: true orientation: type: string readOnly: true nullable: true concurrency: type: number readOnly: true nullable: true start_date: type: string format: "date-time" readOnly: true nullable: true description: | The DAG's start date. *Changed in version 2.0.1*: Field becomes nullable. dag_run_timeout: $ref: "#/components/schemas/TimeDelta" nullable: true dataset_expression: type: object description: Nested dataset any/all conditions nullable: true doc_md: type: string readOnly: true nullable: true default_view: type: string readOnly: true nullable: true params: type: object readOnly: true description: | User-specified DAG params. *New in version 2.0.1* end_date: type: string format: "date-time" readOnly: true nullable: true description: | The DAG's end date. *New in version 2.3.0*. is_paused_upon_creation: type: boolean readOnly: true nullable: true description: | Whether the DAG is paused upon creation. *New in version 2.3.0* last_parsed: type: string format: date-time nullable: true readOnly: true description: | The last time the DAG was parsed. *New in version 2.3.0* template_search_path: type: array nullable: true items: type: string description: | The template search path. *New in version 2.3.0* render_template_as_native_obj: type: boolean nullable: true readOnly: true description: | Whether to render templates as native Python objects. *New in version 2.3.0* ExtraLink: type: object description: Additional links containing additional information about the task. properties: class_ref: $ref: "#/components/schemas/ClassReference" name: type: string readOnly: true href: type: string readOnly: true ExtraLinkCollection: type: object description: The collection of extra links. properties: extra_links: type: array items: $ref: "#/components/schemas/ExtraLink" Task: type: object description: | For details see: [airflow.models.baseoperator.BaseOperator](https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/models/baseoperator/index.html#airflow.models.baseoperator.BaseOperator) properties: class_ref: $ref: "#/components/schemas/ClassReference" task_id: type: string readOnly: true task_display_name: type: string readOnly: true owner: type: string readOnly: true start_date: type: string format: "date-time" readOnly: true end_date: type: string format: "date-time" readOnly: true nullable: true trigger_rule: $ref: "#/components/schemas/TriggerRule" extra_links: type: array readOnly: true items: type: object properties: class_ref: $ref: "#/components/schemas/ClassReference" depends_on_past: type: boolean readOnly: true is_mapped: type: boolean readOnly: true wait_for_downstream: type: boolean readOnly: true retries: type: number readOnly: true queue: type: string readOnly: true nullable: true pool: type: string readOnly: true pool_slots: type: number readOnly: true execution_timeout: $ref: "#/components/schemas/TimeDelta" retry_delay: $ref: "#/components/schemas/TimeDelta" retry_exponential_backoff: type: boolean readOnly: true priority_weight: type: number readOnly: true weight_rule: $ref: "#/components/schemas/WeightRule" ui_color: $ref: "#/components/schemas/Color" ui_fgcolor: $ref: "#/components/schemas/Color" template_fields: type: array readOnly: true items: type: string sub_dag: $ref: "#/components/schemas/DAG" downstream_task_ids: type: array readOnly: true items: type: string TaskCollection: type: object description: Collection of tasks. properties: tasks: type: array items: $ref: "#/components/schemas/Task" # Plugin PluginCollectionItem: type: object description: | A plugin Item. *New in version 2.1.0* properties: name: type: string description: The name of the plugin hooks: type: array items: type: string nullable: true description: The plugin hooks executors: type: array items: type: string nullable: true description: The plugin executors macros: type: array items: type: string nullable: true description: The plugin macros flask_blueprints: type: array items: type: string nullable: true description: The flask blueprints appbuilder_views: type: array items: type: object nullable: true description: The appuilder views appbuilder_menu_items: type: array items: type: object nullable: true description: The Flask Appbuilder menu items global_operator_extra_links: type: array items: type: string nullable: true description: The global operator extra links operator_extra_links: type: array items: type: string nullable: true description: Operator extra links source: type: string description: The plugin source nullable: true ti_deps: type: array items: type: string description: The plugin task instance dependencies listeners: type: array items: type: string description: The plugin listeners timetables: type: array items: type: string description: The plugin timetables PluginCollection: type: object description: | A collection of plugin. *New in version 2.1.0* allOf: - type: object properties: plugins: type: array items: $ref: "#/components/schemas/PluginCollectionItem" - $ref: "#/components/schemas/CollectionInfo" Role: description: | a role item. *New in version 2.1.0* type: object properties: name: type: string description: | The name of the role *Changed in version 2.3.0*: A minimum character length requirement ('minLength') is added. minLength: 1 actions: type: array items: $ref: "#/components/schemas/ActionResource" RoleCollection: description: | A collection of roles. *New in version 2.1.0* type: object allOf: - type: object properties: roles: type: array items: $ref: "#/components/schemas/Role" - $ref: "#/components/schemas/CollectionInfo" Action: description: | An action Item. *New in version 2.1.0* type: object properties: name: type: string description: The name of the permission "action" nullable: false ActionCollection: description: | A collection of actions. *New in version 2.1.0* type: object allOf: - type: object properties: actions: type: array items: $ref: "#/components/schemas/Action" - $ref: "#/components/schemas/CollectionInfo" Resource: description: | A resource on which permissions are granted. *New in version 2.1.0* type: object properties: name: type: string description: The name of the resource nullable: false ActionResource: description: | The Action-Resource item. *New in version 2.1.0* type: object properties: action: type: object $ref: "#/components/schemas/Action" description: The permission action resource: type: object $ref: "#/components/schemas/Resource" description: The permission resource Dataset: description: | A dataset item. *New in version 2.4.0* type: object properties: id: type: integer description: The dataset id uri: type: string description: The dataset uri nullable: false extra: type: object description: The dataset extra nullable: true created_at: type: string description: The dataset creation time nullable: false updated_at: type: string description: The dataset update time nullable: false consuming_dags: type: array items: $ref: "#/components/schemas/DagScheduleDatasetReference" producing_tasks: type: array items: $ref: "#/components/schemas/TaskOutletDatasetReference" TaskOutletDatasetReference: description: | A datasets reference to an upstream task. *New in version 2.4.0* type: object properties: dag_id: type: string description: The DAG ID that updates the dataset. nullable: true task_id: type: string description: The task ID that updates the dataset. nullable: true created_at: type: string description: The dataset creation time nullable: false updated_at: type: string description: The dataset update time nullable: false DagScheduleDatasetReference: description: | A datasets reference to a downstream DAG. *New in version 2.4.0* type: object properties: dag_id: type: string description: The DAG ID that depends on the dataset. nullable: true created_at: type: string description: The dataset reference creation time nullable: false updated_at: type: string description: The dataset reference update time nullable: false DatasetCollection: description: | A collection of datasets. *New in version 2.4.0* type: object allOf: - type: object properties: datasets: type: array items: $ref: "#/components/schemas/Dataset" - $ref: "#/components/schemas/CollectionInfo" DatasetEvent: description: | A dataset event. *New in version 2.4.0* type: object properties: dataset_id: type: integer description: The dataset id dataset_uri: type: string description: The URI of the dataset nullable: false extra: type: object description: The dataset event extra nullable: true source_dag_id: type: string description: The DAG ID that updated the dataset. nullable: true source_task_id: type: string description: The task ID that updated the dataset. nullable: true source_run_id: type: string description: The DAG run ID that updated the dataset. nullable: true source_map_index: type: integer description: The task map index that updated the dataset. nullable: true created_dagruns: type: array items: $ref: "#/components/schemas/BasicDAGRun" timestamp: type: string description: The dataset event creation time nullable: false CreateDatasetEvent: type: object required: - dataset_uri properties: dataset_uri: type: string description: The URI of the dataset nullable: false extra: type: object description: The dataset event extra nullable: true QueuedEvent: type: object properties: uri: type: string description: The datata uri. dag_id: type: string description: The DAG ID. created_at: type: string format: date-time description: The creation time of QueuedEvent QueuedEventCollection: description: | A collection of Dataset Dag Run Queues. *New in version 2.9.0* type: object allOf: - type: object properties: datasets: type: array items: $ref: "#/components/schemas/QueuedEvent" - $ref: "#/components/schemas/CollectionInfo" BasicDAGRun: type: object properties: run_id: type: string description: | Run ID. dag_id: type: string readOnly: true logical_date: type: string description: | The logical date (previously called execution date). This is the time or interval covered by this DAG run, according to the DAG definition. The value of this field can be set only when creating the object. If you try to modify the field of an existing object, the request fails with an BAD_REQUEST error. This together with DAG_ID are a unique key. *New in version 2.2.0* format: date-time start_date: type: string format: date-time description: | The start time. The time when DAG run was actually created. *Changed in version 2.1.3*: Field becomes nullable. readOnly: true nullable: true end_date: type: string format: date-time readOnly: true nullable: true data_interval_start: type: string format: date-time readOnly: true nullable: true data_interval_end: type: string format: date-time readOnly: true nullable: true state: $ref: "#/components/schemas/DagState" DatasetEventCollection: description: | A collection of dataset events. *New in version 2.4.0* type: object allOf: - type: object properties: dataset_events: type: array items: $ref: "#/components/schemas/DatasetEvent" - $ref: "#/components/schemas/CollectionInfo" # Configuration ConfigOption: type: object description: The option of configuration. properties: key: type: string readOnly: true value: type: string readOnly: true ConfigSection: type: object description: The section of configuration. properties: name: type: string readOnly: true options: type: array items: $ref: "#/components/schemas/ConfigOption" Config: type: object description: The configuration. properties: sections: type: array items: $ref: "#/components/schemas/ConfigSection" VersionInfo: type: object description: Version information. properties: version: type: string description: The version of Airflow git_version: type: string description: The git version (including git commit hash) nullable: true # Form ClearDagRun: type: object properties: dry_run: description: | If set, don't actually run this operation. The response will contain a list of task instances planned to be cleaned, but not modified in any way. type: boolean default: true ClearTaskInstances: type: object properties: dry_run: description: | If set, don't actually run this operation. The response will contain a list of task instances planned to be cleaned, but not modified in any way. type: boolean default: true task_ids: description: | A list of task ids to clear. *New in version 2.1.0* type: array items: type: string minItems: 1 start_date: description: The minimum execution date to clear. type: string format: datetime end_date: description: The maximum execution date to clear. type: string format: datetime only_failed: description: Only clear failed tasks. type: boolean default: true only_running: description: Only clear running tasks. type: boolean default: false include_subdags: description: Clear tasks in subdags and clear external tasks indicated by ExternalTaskMarker. type: boolean include_parentdag: description: Clear tasks in the parent dag of the subdag. type: boolean reset_dag_runs: description: Set state of DAG runs to RUNNING. type: boolean dag_run_id: type: string description: The DagRun ID for this task instance nullable: true include_upstream: description: If set to true, upstream tasks are also affected. type: boolean default: false include_downstream: description: If set to true, downstream tasks are also affected. type: boolean default: false include_future: description: If set to True, also tasks from future DAG Runs are affected. type: boolean default: false include_past: description: If set to True, also tasks from past DAG Runs are affected. type: boolean default: false UpdateTaskInstancesState: type: object properties: dry_run: description: | If set, don't actually run this operation. The response will contain a list of task instances planned to be affected, but won't be modified in any way. type: boolean default: true task_id: description: The task ID. type: string execution_date: description: The execution date. Either set this or dag_run_id but not both. type: string format: datetime dag_run_id: description: | The task instance's DAG run ID. Either set this or execution_date but not both. *New in version 2.3.0* type: string include_upstream: description: If set to true, upstream tasks are also affected. type: boolean include_downstream: description: If set to true, downstream tasks are also affected. type: boolean include_future: description: If set to True, also tasks from future DAG Runs are affected. type: boolean include_past: description: If set to True, also tasks from past DAG Runs are affected. type: boolean new_state: $ref: "#/components/schemas/UpdateTaskState" UpdateTaskInstance: type: object properties: dry_run: description: | If set, don't actually run this operation. The response will contain the task instance planned to be affected, but won't be modified in any way. type: boolean default: true new_state: $ref: "#/components/schemas/UpdateTaskState" SetTaskInstanceNote: type: object required: - note properties: note: description: The custom note to set for this Task Instance. type: string ListDagRunsForm: type: object properties: order_by: type: string description: | The name of the field to order the results by. Prefix a field name with `-` to reverse the sort order. *New in version 2.1.0* page_offset: type: integer minimum: 0 description: The number of items to skip before starting to collect the result set. page_limit: type: integer minimum: 1 default: 100 description: The numbers of items to return. dag_ids: type: array items: type: string description: Return objects with specific DAG IDs. The value can be repeated to retrieve multiple matching values (OR condition). states: type: array items: type: string description: Return objects with specific states. The value can be repeated to retrieve multiple matching values (OR condition). execution_date_gte: type: string format: date-time description: | Returns objects greater or equal to the specified date. This can be combined with execution_date_lte key to receive only the selected period. execution_date_lte: type: string format: date-time description: | Returns objects less than or equal to the specified date. This can be combined with execution_date_gte key to receive only the selected period. start_date_gte: type: string format: date-time description: | Returns objects greater or equal the specified date. This can be combined with start_date_lte key to receive only the selected period. start_date_lte: type: string format: date-time description: | Returns objects less or equal the specified date. This can be combined with start_date_gte parameter to receive only the selected period end_date_gte: type: string format: date-time description: | Returns objects greater or equal the specified date. This can be combined with end_date_lte parameter to receive only the selected period. end_date_lte: type: string format: date-time description: | Returns objects less than or equal to the specified date. This can be combined with end_date_gte parameter to receive only the selected period. ListTaskInstanceForm: type: object properties: dag_ids: type: array items: type: string description: Return objects with specific DAG IDs. The value can be repeated to retrieve multiple matching values (OR condition). dag_run_ids: type: array items: type: string description: Return objects with specific DAG Run IDs. The value can be repeated to retrieve multiple matching values (OR condition). *New in version 2.7.1* task_ids: type: array items: type: string description: Return objects with specific task IDs. The value can be repeated to retrieve multiple matching values (OR condition). *New in version 2.7.1* execution_date_gte: type: string format: date-time description: | Returns objects greater or equal to the specified date. This can be combined with execution_date_lte parameter to receive only the selected period. execution_date_lte: type: string format: date-time description: | Returns objects less than or equal to the specified date. This can be combined with execution_date_gte parameter to receive only the selected period. start_date_gte: type: string format: date-time description: | Returns objects greater or equal the specified date. This can be combined with start_date_lte parameter to receive only the selected period. start_date_lte: type: string format: date-time description: | Returns objects less or equal the specified date. This can be combined with start_date_gte parameter to receive only the selected period. end_date_gte: type: string format: date-time description: | Returns objects greater or equal the specified date. This can be combined with start_date_lte parameter to receive only the selected period. end_date_lte: type: string format: date-time description: | Returns objects less than or equal to the specified date. This can be combined with start_date_gte parameter to receive only the selected period. duration_gte: type: number description: | Returns objects greater than or equal to the specified values. This can be combined with duration_lte parameter to receive only the selected period. duration_lte: type: number description: | Returns objects less than or equal to the specified values. This can be combined with duration_gte parameter to receive only the selected range. state: type: array items: $ref: "#/components/schemas/TaskState" description: The value can be repeated to retrieve multiple matching values (OR condition). pool: type: array items: type: string description: The value can be repeated to retrieve multiple matching values (OR condition). queue: type: array items: type: string description: The value can be repeated to retrieve multiple matching values (OR condition). # Common data type ScheduleInterval: description: | Schedule interval. Defines how often DAG runs, this object gets added to your latest task instance's execution_date to figure out the next schedule. nullable: true readOnly: true anyOf: - $ref: "#/components/schemas/TimeDelta" - $ref: "#/components/schemas/RelativeDelta" - $ref: "#/components/schemas/CronExpression" discriminator: propertyName: __type TimeDelta: description: Time delta type: object nullable: true required: - __type - days - seconds - microseconds properties: __type: { type: string } days: { type: integer } seconds: { type: integer } microseconds: { type: integer } RelativeDelta: description: Relative delta # TODO: Why we need these fields? type: object required: - __type - years - months - days - leapdays - hours - minutes - seconds - microseconds - year - month - day - hour - minute - second - microsecond properties: __type: { type: string } years: { type: integer } months: { type: integer } days: { type: integer } leapdays: { type: integer } hours: { type: integer } minutes: { type: integer } seconds: { type: integer } microseconds: { type: integer } year: { type: integer } month: { type: integer } day: { type: integer } hour: { type: integer } minute: { type: integer } second: { type: integer } microsecond: { type: integer } CronExpression: description: Cron expression type: object required: - __type - value properties: __type: { type: string } value: { type: string } nullable: true Timezone: type: string Tag: description: Tag # Object to maintain extensibility type: object properties: name: type: string Color: description: Color in hexadecimal notation. type: string pattern: ^#[a-fA-F0-9]{3,6}$ ClassReference: description: Class reference type: object properties: module_path: type: string readOnly: true class_name: type: string readOnly: true # Generic Error: description: | [RFC7807](https://tools.ietf.org/html/rfc7807) compliant response. type: object properties: type: type: string description: | A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type. title: type: string description: A short, human-readable summary of the problem type. status: type: number description: The HTTP status code generated by the API server for this occurrence of the problem. detail: type: string description: A human-readable explanation specific to this occurrence of the problem. instance: type: string description: | A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. required: - type - title - status CollectionInfo: description: Metadata about collection. type: object properties: total_entries: type: integer description: | Count of total objects in the current result set before pagination parameters (limit, offset) are applied. # Enums TaskState: description: | Task state. *Changed in version 2.0.2*: 'removed' is added as a possible value. *Changed in version 2.2.0*: 'deferred' is added as a possible value. *Changed in version 2.4.0*: 'sensing' state has been removed. *Changed in version 2.4.2*: 'restarting' is added as a possible value *Changed in version 2.7.0*: Field becomes nullable and null primitive is added as a possible value. *Changed in version 2.7.0*: 'none' state is deprecated in favor of null. type: string nullable: true enum: - null - success - running - failed - upstream_failed - skipped - up_for_retry - up_for_reschedule - queued - none - scheduled - deferred - removed - restarting UpdateTaskState: description: | Expected new state. Only a subset of TaskState are available. Other states are managed directly by the scheduler or the workers and cannot be updated manually through the REST API. type: string enum: - success - failed - skipped DagState: description: | DAG State. *Changed in version 2.1.3*: 'queued' is added as a possible value. type: string readOnly: true enum: - queued - running - success - failed TriggerRule: description: | Trigger rule. *Changed in version 2.2.0*: 'none_failed_min_one_success' is added as a possible value. Deprecated 'dummy' and 'always' is added as a possible value *Changed in version 2.3.0*: 'all_skipped' is added as a possible value. *Changed in version 2.5.0*: 'one_done' is added as a possible value. *Changed in version 2.7.0*: 'all_done_setup_success' is added as a possible value. type: string enum: - all_success - all_failed - all_done - all_done_setup_success - one_success - one_failed - one_done - none_failed - none_skipped - none_failed_or_skipped - none_failed_min_one_success - dummy - all_skipped - always WeightRule: description: Weight rule. type: string enum: - downstream - upstream - absolute HealthStatus: description: Health status type: string nullable: true enum: - healthy - unhealthy # Reusable path, query, header and cookie parameters parameters: # Pagination parameters PageOffset: in: query name: offset required: false schema: type: integer minimum: 0 description: The number of items to skip before starting to collect the result set. PageLimit: in: query name: limit required: false schema: type: integer default: 100 description: The numbers of items to return. # Database entity fields Username: in: path name: username schema: type: string required: true description: | The username of the user. *New in version 2.1.0* RoleName: in: path name: role_name schema: type: string required: true description: The role name ConnectionID: in: path name: connection_id schema: type: string required: true description: The connection ID. DAGID: in: path name: dag_id schema: type: string required: true description: The DAG ID. TaskID: in: path name: task_id schema: type: string required: true description: The task ID. Event: in: query name: event schema: type: string required: false description: The name of event log. Owner: in: query name: owner schema: type: string required: false description: The owner's name of event log. Before: in: query name: before schema: type: string format: date-time required: false description: Timestamp to select event logs occurring before. After: in: query name: after schema: type: string format: date-time required: false description: Timestamp to select event logs occurring after. MapIndex: in: path name: map_index schema: type: integer required: true description: The map index. DAGRunID: in: path name: dag_run_id schema: type: string required: true description: The DAG run ID. TaskTryNumber: in: path name: task_try_number schema: type: integer required: true description: The task try number. EventLogID: in: path name: event_log_id schema: type: integer required: true description: The event log ID. ImportErrorID: in: path name: import_error_id schema: type: integer required: true description: The import error ID. DatasetURI: in: path name: uri schema: type: string format: path required: true description: The encoded Dataset URI PoolName: in: path name: pool_name schema: type: string required: true description: The pool name. VariableKey: in: path name: variable_key schema: type: string format: path required: true description: The variable Key. # Logs FullContent: in: query name: full_content schema: type: boolean required: false description: | A full content will be returned. By default, only the first fragment will be returned. ContinuationToken: in: query name: token schema: type: string required: false description: | A token that allows you to continue fetching logs. If passed, it will specify the location from which the download should be continued. XComKey: in: path name: xcom_key schema: type: string required: true description: The XCom key. # Filters FilterExecutionDateGTE: in: query name: execution_date_gte schema: type: string format: date-time required: false description: | Returns objects greater or equal to the specified date. This can be combined with execution_date_lte parameter to receive only the selected period. FilterExecutionDateLTE: in: query name: execution_date_lte schema: type: string format: date-time required: false description: | Returns objects less than or equal to the specified date. This can be combined with execution_date_gte parameter to receive only the selected period. FilterStartDateGTE: in: query name: start_date_gte schema: type: string format: date-time required: false description: | Returns objects greater or equal the specified date. This can be combined with start_date_lte parameter to receive only the selected period. FilterStartDateLTE: in: query name: start_date_lte schema: type: string format: date-time required: false description: | Returns objects less or equal the specified date. This can be combined with start_date_gte parameter to receive only the selected period. FilterEndDateGTE: in: query name: end_date_gte schema: type: string format: date-time required: false description: | Returns objects greater or equal the specified date. This can be combined with start_date_lte parameter to receive only the selected period. FilterEndDateLTE: in: query name: end_date_lte schema: type: string format: date-time required: false description: | Returns objects less than or equal to the specified date. This can be combined with start_date_gte parameter to receive only the selected period. FilterDurationGTE: in: query name: duration_gte schema: type: number required: false description: | Returns objects greater than or equal to the specified values. This can be combined with duration_lte parameter to receive only the selected period. FilterDurationLTE: in: query name: duration_lte schema: type: number required: false description: | Returns objects less than or equal to the specified values. This can be combined with duration_gte parameter to receive only the selected range. FilterState: in: query name: state schema: type: array items: type: string required: false description: The value can be repeated to retrieve multiple matching values (OR condition). FilterPool: in: query name: pool schema: type: array items: type: string required: false description: The value can be repeated to retrieve multiple matching values (OR condition). FilterQueue: in: query name: queue schema: type: array items: type: string description: The value can be repeated to retrieve multiple matching values (OR condition). FilterTags: in: query name: tags schema: type: array items: type: string description: | List of tags to filter results. *New in version 2.2.0* FilterDatasetID: in: query name: dataset_id schema: type: integer description: The Dataset ID that updated the dataset. FilterSourceDAGID: in: query name: source_dag_id schema: type: string description: The DAG ID that updated the dataset. FilterSourceTaskID: in: query name: source_task_id schema: type: string description: The task ID that updated the dataset. FilterSourceRunID: in: query name: source_run_id schema: type: string description: The DAG run ID that updated the dataset. FilterSourceMapIndex: in: query name: source_map_index schema: type: integer description: The map index that updated the dataset. FilterMapIndex: in: query name: map_index schema: type: integer description: Filter on map index for mapped task. OrderBy: in: query name: order_by schema: type: string required: false description: | The name of the field to order the results by. Prefix a field name with `-` to reverse the sort order. *New in version 2.1.0* OnlyActive: in: query name: only_active schema: type: boolean default: true required: false description: | Only filter active DAGs. *New in version 2.1.1* FilterUpdatedAtLTE: in: query name: updated_at_lte schema: type: string format: date-time required: false description: | Returns objects less or equal the specified date. This can be combined with updated_at_gte parameter to receive only the selected period. *New in version 2.6.0* FilterUpdatedAtGTE: in: query name: updated_at_gte schema: type: string format: date-time required: false description: | Returns objects greater or equal the specified date. This can be combined with updated_at_lte parameter to receive only the selected period. *New in version 2.6.0* Paused: in: query name: paused schema: type: boolean required: false description: | Only filter paused/unpaused DAGs. If absent or null, it returns paused and unpaused DAGs. *New in version 2.6.0* FilterXcomKey: in: query name: xcom_key schema: type: string required: false description: Only filter the XCom records which have the provided key. FilterDAGID: in: query name: dag_id schema: type: string required: false description: Returns objects matched by the DAG ID. FilterTaskID: in: query name: task_id schema: type: string required: false description: Returns objects matched by the Task ID. FilterRunID: in: query name: run_id schema: type: string required: false description: Returns objects matched by the Run ID. # Other parameters FileToken: in: path name: file_token schema: type: string required: true 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. UpdateMask: in: query name: update_mask schema: type: array items: type: string description: | The fields to update on the resource. If absent or empty, all modifiable fields are updated. A comma-separated list of fully qualified names of fields. style: form explode: false ReturnFields: in: query name: fields schema: type: array items: type: string description: | List of field for return. # Reusable request bodies requestBodies: {} # Reusable responses, such as 401 Unauthenticated or 400 Bad Request responses: # 400 "BadRequest": description: Client specified an invalid argument. content: application/json: schema: $ref: "#/components/schemas/Error" # 401 "Unauthenticated": description: Request not authenticated due to missing, invalid, authentication info. content: application/json: schema: $ref: "#/components/schemas/Error" # 403 "PermissionDenied": description: Client does not have sufficient permission. content: application/json: schema: $ref: "#/components/schemas/Error" # 404 "NotFound": description: A specified resource is not found. content: application/json: schema: $ref: "#/components/schemas/Error" # 405 "MethodNotAllowed": description: Request method is known by the server but is not supported by the target resource. content: application/json: schema: $ref: "#/components/schemas/Error" # 406 "NotAcceptable": description: A specified Accept header is not allowed. content: application/json: schema: $ref: "#/components/schemas/Error" # 409 "AlreadyExists": description: An existing resource conflicts with the request. content: application/json: schema: $ref: "#/components/schemas/Error" # 500 "Unknown": description: Unknown server error. content: application/json: schema: $ref: "#/components/schemas/Error" # Reusable response headers headers: {} # Reusable examples examples: {} # Reusable links links: {} # Reusable callbacks callbacks: {} securitySchemes: Basic: type: http scheme: basic GoogleOpenId: type: openIdConnect openIdConnectUrl: https://accounts.google.com/.well-known/openid-configuration Kerberos: type: http scheme: negotiate # The API will provide support for plugins to support various authorization mechanisms. # Detailed information will be available in the plugin specification. security: [] tags: - name: Config - name: Connection - name: DAG - name: DAGRun - name: DagWarning - name: Dataset - name: EventLog - name: ImportError - name: Monitoring - name: Permission - name: Plugin - name: Pool - name: Provider - name: Role - name: TaskInstance - name: User - name: Variable - name: XCom externalDocs: url: https://airflow.apache.org/docs/apache-airflow/stable/