diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 97f41ca..4a6430c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,36 +7,30 @@
     branches: ['main']
 
 jobs:
-  lint:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout
-        uses: actions/checkout@main
-      - uses: actions/setup-python@v2
-        with:
-          python-version: '3.x'
-      - name: Run precommit hooks
-        run: |
-          pip install pre-commit
-          pre-commit run --all-files
   build:
     runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        python_version: ["3.7", "3.8", "3.9", "3.10"]
     steps:
       - name: Checkout
         uses: actions/checkout@main
-
       - name: Set up Python
-        uses: actions/setup-python@v2
+        uses: actions/setup-python@v5
         with:
-          python-version: ${{ matrix.python_version }}
-        id: python
-
-      - name: Run pytest
+          python-version: 3.8
+          cache: 'pip'
+      - name: Install hatch
         run: |
-          pip install -r test-requirements.txt
-          pytest test
+          python -m pip install --upgrade pipx
+          pipx install hatch
+      - name: Run tests
+        run: hatch run run-coverage
         env:
-          PYTEST_ADDOPTS: "--color=yes"
+          HATCH_ENV: "test"
+      - name: Build packages
+        run: hatch build -c -t sdist -t wheel
+      - name: "Upload packages"
+        uses: actions/upload-artifact@v3
+        with:
+          name: packages
+          path: ./dist/apache_airflow_client-*
+          retention-days: 7
+          if-no-files-found: error
diff --git a/.gitignore b/.gitignore
index 96e65cf..7bf956f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,67 +1,9 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
-
-# C extensions
-*.so
-
-# Distribution / packaging
-.Python
-env/
-build/
-develop-eggs/
-dist/
-downloads/
-eggs/
-.eggs/
-.idea/
-lib/
-lib64/
-parts/
-sdist/
-var/
-*.egg-info/
-.installed.cfg
-*.egg
-
-# PyInstaller
-#  Usually these files are written by a python script from a template
-#  before PyInstaller builds the exe, so as to inject date/other infos into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
-pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*,cover
-.hypothesis/
-venv/
-.venv/
-.python-version
-.pytest_cache
-
-# Translations
-*.mo
-*.pot
-
-# Django stuff:
-*.log
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
-target/
-
-#Ipython Notebook
-.ipynb_checkpoints
+/airflow_client
+/docs
+/dist
+/test
+/tmp
+/v1.yaml
+/.coverage
+/apache_airflow_client.egg-info/
+/.idea
diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore
new file mode 100644
index 0000000..36151b8
--- /dev/null
+++ b/.openapi-generator-ignore
@@ -0,0 +1,8 @@
+.travis.yml
+git_push.sh
+.gitlab-ci.yml
+requirements.txt
+setup.cfg
+setup.py
+test-requirements.txt
+tox.ini
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
deleted file mode 100644
index 974b242..0000000
--- a/.pre-commit-config.yaml
+++ /dev/null
@@ -1,84 +0,0 @@
-# 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.
-
-default_stages: [commit, push]
-default_language_version:
-  # force all unspecified python hooks to run python3
-  python: python3
-minimum_pre_commit_version: "1.20.0"
-repos:
-  - repo: meta
-    hooks:
-      - id: identity
-        name: Print input to the static check hooks for troubleshooting
-      - id: check-hooks-apply
-        name: Check if all hooks apply to the repository
-  - repo: https://github.com/Lucas-C/pre-commit-hooks
-    rev: v1.5.1
-    hooks:
-      - id: insert-license
-        name: Add license for all md files
-        files: \.md$
-        exclude: ^\.github/.*$|PROVIDERS_CHANGES.*\.md
-        args:
-          - --comment-style
-          - "<!--|| -->"
-          - --license-filepath
-          - license-templates/LICENSE.txt
-          - --fuzzy-match-generates-todo
-      - id: insert-license
-        name: Add license for all python files
-        exclude: ^\.github/.*$
-        language: python
-        files: \.py$
-        args:
-          - --comment-style
-          - "|#|"
-          - --license-filepath
-          - license-templates/LICENSE.txt
-          - --fuzzy-match-generates-todo
-      - id: insert-license
-        name: Add license for all yaml files
-        exclude: ^\.github/.*$
-        types: [yaml]
-        files: \.yml$|\.yaml$
-        args:
-          - --comment-style
-          - "|#|"
-          - --license-filepath
-          - license-templates/LICENSE.txt
-          - --fuzzy-match-generates-todo
-      - id: insert-license
-        name: Add license for all other files
-        exclude: ^\.github/.*$|\.*LICENSE.txt$
-        args:
-          - --comment-style
-          - "|#|"
-          - --license-filepath
-          - license-templates/LICENSE.txt
-          - --fuzzy-match-generates-todo
-        files: >
-          \.properties$|\.cfg$|\.conf$|\.ini$|\.txt$$
-  - repo: local
-    hooks:
-      - id: update-example-in-readme
-        name: Update example python script in README.md
-        entry: ./dev/insert_readme_example.py
-        language: python
-        files: ^dev/test_python_client.py$|^README.md$
-        pass_filenames: false
-        require_serial: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 746cbdd..259cc06 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,16 +17,18 @@
  under the License.
  -->
 
- # v2.8.0
+# v2.8.0
 
- ### Major changes:
+## Major changes:
+
   - Allow filtering event logs by attributes ([#34417](https://github.com/apache/airflow/pull/34417))
   - Add extra fields to plugins endpoint ([#34913](https://github.com/apache/airflow/pull/34913))
   - Let auth managers provide their own API endpoints ([#34349](https://github.com/apache/airflow/pull/34349))
   - Enable pools to consider deferred tasks ([#32709](https://github.com/apache/airflow/pull/32709))
   - Add dag_run_ids and task_ids filter for the batch task instance API endpoint ([#32705](https://github.com/apache/airflow/pull/32705))
 
- ### Major Fixes
+## Major Fixes
+
   - Add DagModel attributes before dumping DagDetailSchema for get_dag_details API endpoint ([#34947](https://github.com/apache/airflow/pull/34947))
   - Add TriggerRule missing value in rest API ([#35194](https://github.com/apache/airflow/pull/35194))
   - Fix wrong plugin schema ([#34858](https://github.com/apache/airflow/pull/34858))
@@ -34,36 +36,42 @@
   - OpenAPI Spec fix nullable alongside $ref ([#32887](https://github.com/apache/airflow/pull/32887))
   - Clarify new_state in OpenAPI spec ([#34056](https://github.com/apache/airflow/pull/34056))
 
- ### NEW API supported
+## NEW API supported
+
   - NA
 
- # v2.7.3
+# v2.7.3
 
- ### Major changes:
+## Major changes:
+
  - NA
 
- ### Major Fixes
+## Major Fixes
+
  - Add TriggerRule missing value in rest API ([#35194](https://github.com/apache/airflow/pull/35194))
  - Fix wrong plugin schema ([#34858](https://github.com/apache/airflow/pull/34858))
- 
- # v2.7.2
+
+# v2.7.2
 
  Apache Airflow API version: 2.7.2
 
-  ### Major changes:
-  - NA
+## Major changes:
 
-  ### Major Fixes
-  - Fix: make dry run optional for patch task instance  ([#34568](https://github.com/apache/airflow/pull/34568))
+ - NA
 
-  ### NEW API supported
-  - NA
+## Major Fixes
+
+- Fix: make dry run optional for patch task instance  ([#34568](https://github.com/apache/airflow/pull/34568))
+
+## NEW API supported
+
+ - NA
 
 # v2.7.0
 
 Apache Airflow API version: 2.7.0
 
-### Major changes:
+## Major changes:
 
  - Enable pools to consider deferred tasks ([#32709](https://github.com/apache/airflow/pull/32709))
  - add dag_run_ids and task_ids filter for the batch task instance API endpoint ([#32705](https://github.com/apache/airflow/pull/32705))
@@ -71,14 +79,14 @@
  - Updates health check endpoint to include dag_processor status. ([#32382](https://github.com/apache/airflow/pull/32382))
  - Add TriggererStatus to OpenAPI spec ([#31579](https://github.com/apache/airflow/pull/31579))
 
-### Major Fixes
+## Major Fixes
 
  - OpenAPI Spec fix nullable alongside $ref ([#32887](https://github.com/apache/airflow/pull/32887))
  - Fix incorrect default on readonly property in our API ([#32510](https://github.com/apache/airflow/pull/32510))
  - Fix broken links in openapi/v1.yaml ([#31619](https://github.com/apache/airflow/pull/31619))
  - Update Dag trigger API and command docs ([#32696](https://github.com/apache/airflow/pull/32696))
 
-### NEW API supported
+## NEW API supported
 
  - NA
 
@@ -86,15 +94,15 @@
 
 Apache Airflow API version: 2.6.2
 
-### Major changes:
+## Major changes:
 
  - Add TriggererStatus to OpenAPI spec ([#31579](https://github.com/apache/airflow/pull/31579))
 
-### Major Fixes
+## Major Fixes
 
  - Fixing broken links in openapi/v1.yaml ([#31619](https://github.com/apache/airflow/pull/31619))
 
-### NEW API supported
+## NEW API supported
 
  - NA
 
@@ -102,14 +110,15 @@
 
 Apache Airflow API version: 2.6.1
 
-### Major changes:
+## Major changes:
+
  - NA
 
-### Major Fixes
+## Major Fixes
 
  - Fix Pool schema OpenAPI spec ([#30973](https://github.com/apache/airflow/pull/30973))
 
-### NEW API supported
+## NEW API supported
 
  - NA
 
@@ -117,13 +126,13 @@
 
 Apache Airflow API version: 2.6.0
 
-### Major changes:
+## Major changes:
 
  - Minimum Python version is 3.7
  - DAGRun dag_id parameter is properly validated as read-only and setting it might result in an error:
-   "`dag_id` is a read-only attribute" This might break some workflows that used examples from the documentation. 
+   "`dag_id` is a read-only attribute" This might break some workflows that used examples from the documentation.
 
-### Major Fixes
+## Major Fixes
 
  - Move read only property in order to fix Dagrun API docs ([#30149](https://github.com/apache/airflow/pull/30149))
  - Fix clear dag run openapi spec responses by adding additional return type ([#29600](https://github.com/apache/airflow/pull/29600))
@@ -132,7 +141,7 @@
 ([#28713](https://github.com/apache/airflow/pull/28713))
  - Expose updated_at filter for dag run and task instance endpoints ([#28636](https://github.com/apache/airflow/pull/28636))
 
-### NEW API supported
+## NEW API supported
 
  - NA
 
@@ -140,15 +149,15 @@
 
 Apache Airflow API version: 2.5.1
 
-### Major changes:
+## Major changes:
 
 - NA
 
-### Major fixes:
+## Major fixes:
 
 - Fix authentication issues by regenerating the client with proper security schemas
 
-### New API supported:
+## New API supported:
 
 - NA
 
@@ -156,15 +165,15 @@
 
 Apache Airflow API version: 2.5.x
 
-### Major changes:
+## Major changes:
 
 - NA
 
-### Major fixes:
+## Major fixes:
 
 - NA
 
-### New API supported:
+## New API supported:
 
 - GET /datasets/events | Get dataset events
 - GET /datasets | Get datasets
@@ -176,15 +185,15 @@
 
 Apache Airflow API version: 2.3.x
 
-### Major changes:
+## Major changes:
 
 - NA
 
-### Major fixes:
+## Major fixes:
 
 - NA
 
-### New API supported:
+## New API supported:
 
 - PATCH /dags | Update DAGs
 - GET /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index} | Get a mapped task instance
@@ -194,15 +203,15 @@
 
 Apache Airflow API version: 2.2.x
 
-### Major changes:
+## Major changes:
 
 - Client code is generated using OpenApi's 5.3.0 generator CLI
 
-### Major fixes:
+## Major fixes:
 
 - NA
 
-### New API supported:
+## New API supported:
 
 - POST /connections/test | Test a connection
 - DELETE /dags/{dag_id} | Delete a DAG
@@ -215,15 +224,16 @@
 
 Apache Airflow API version: 2.1.x
 
-### Major changes:
+## Major changes:
 
  - Client code is generated using OpenApi's 5.1.1 generator CLI
 
-### Major fixes:
+## Major fixes:
 
- - Fixed the iteration issue on array items caused by unsupported class 'object' (issue #15)
+ - Fixed the iteration issue on array items caused by unsupported class 'object'.
+   Issue [#15](https://github.com/apache/airflow-client-python/issues/15)
 
-### New API supported:
+## New API supported:
 
  - Permissions
  - Plugins
@@ -236,4 +246,3 @@
 Apache Airflow API version: 2.0.x
 
 Initial version of the Python client.
-
diff --git a/INSTALL b/INSTALL
index 1ef702d..edf1a74 100644
--- a/INSTALL
+++ b/INSTALL
@@ -16,9 +16,11 @@
 python3 -m venv PATH_TO_YOUR_VENV
 source PATH_TO_YOUR_VENV/bin/activate
 
-# [required] building and installing by pip (preferred)
+# [required] building and installing by pip (the package can also be built with any other modern tools
+# that can build Python packages, e.g. setuptools, but pip is the recommended way)
+
 pip install .
 
-# or directly
-python setup.py install
+# We also recommend hatch to convert the client to packages
 
+hatch build -c -t wheel -t sdist
diff --git a/LICENSE b/LICENSE
index 11069ed..b83a80d 100644
--- a/LICENSE
+++ b/LICENSE
@@ -199,3 +199,55 @@
 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.
+
+============================================================================
+   APACHE AIRFLOW SUBCOMPONENTS:
+
+   The Apache Airflow project contains subcomponents with separate copyright
+   notices and license terms. Your use of the source code for the these
+   subcomponents is subject to the terms and conditions of the following
+   licenses.
+
+
+========================================================================
+Third party Apache 2.0 licenses
+========================================================================
+
+The following components are provided under the Apache 2.0 License.
+See project link for details. The text of each license is also included
+at licenses/LICENSE-[project].txt.
+
+    (ALv2 License) hue v4.3.0 (https://github.com/cloudera/hue/)
+    (ALv2 License) jqclock v2.3.0 (https://github.com/JohnRDOrazio/jQuery-Clock-Plugin)
+    (ALv2 License) bootstrap3-typeahead v4.0.2 (https://github.com/bassjobsen/Bootstrap-3-Typeahead)
+    (ALv2 License) connexion v2.7.0 (https://github.com/zalando/connexion)
+
+========================================================================
+MIT licenses
+========================================================================
+
+The following components are provided under the MIT License. See project link for details.
+The text of each license is also included at licenses/LICENSE-[project].txt.
+
+    (MIT License) jquery v3.5.1 (https://jquery.org/license/)
+    (MIT License) dagre-d3 v0.6.4 (https://github.com/cpettitt/dagre-d3)
+    (MIT License) bootstrap v3.4.1 (https://github.com/twbs/bootstrap/)
+    (MIT License) d3-tip v0.9.1 (https://github.com/Caged/d3-tip)
+    (MIT License) dataTables v1.10.25 (https://datatables.net)
+    (MIT License) normalize.css v3.0.2 (http://necolas.github.io/normalize.css/)
+    (MIT License) ElasticMock v1.3.2 (https://github.com/vrcmarcos/elasticmock)
+    (MIT License) MomentJS v2.24.0 (http://momentjs.com/)
+    (MIT License) eonasdan-bootstrap-datetimepicker v4.17.49 (https://github.com/eonasdan/bootstrap-datetimepicker/)
+
+========================================================================
+BSD 3-Clause licenses
+========================================================================
+The following components are provided under the BSD 3-Clause license. See project links for details.
+The text of each license is also included at licenses/LICENSE-[project].txt.
+
+    (BSD 3 License) d3 v5.16.0 (https://d3js.org)
+    (BSD 3 License) d3-shape v2.1.0 (https://github.com/d3/d3-shape)
+    (BSD 3 License) cgroupspy 0.2.1 (https://github.com/cloudsigma/cgroupspy)
+
+========================================================================
+See licenses/LICENSES-ui.txt for packages used in `/airflow/www`
diff --git a/NOTICE b/NOTICE
index 0ae7e64..e69de29 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,6 +0,0 @@
-Apache Airflow
-Copyright 2016-2021 The Apache Software Foundation
-
-This product includes software developed at The Apache Software
-Foundation (http://www.apache.org/).
-=======================================================================
diff --git a/README.md b/README.md
index 7cd3ea3..6ac3d23 100644
--- a/README.md
+++ b/README.md
@@ -19,146 +19,584 @@
 
 # Apache Airflow Python Client
 
+# 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 **Create**, **Read**, **Update**, and **Delete** 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 executing 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
+{
+    \"name\": \"string\",
+    \"slots\": 0,
+    \"occupied_slots\": 0,
+    \"used_slots\": 0,
+    \"queued_slots\": 0,
+    \"open_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:
+
+```python
+import requests
+
+resource = requests.get("/resource/my-id").json()
+resource["my_field"] = "new-value"
+requests.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 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.
+
+This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: 2.8.0
+- Package version: 2.8.0
+- Build package: org.openapitools.codegen.languages.PythonClientCodegen
+For more information, please visit [https://airflow.apache.org](https://airflow.apache.org)
+
 ## Requirements.
 
-Python >= 3.7
+Python >=3.8
 
 ## Installation & Usage
 
 ### pip install
 
-You can install directly using pip:
+You can install the client using standard Python installation tools. It is hosted
+in PyPI with `apache-airflow-client` package id so the easiest way to get the latest
+version is to run:
 
-```sh
+```bash
 pip install apache-airflow-client
-````
-
-### Setuptools
-
-Or install via [Setuptools](http://pypi.python.org/pypi/setuptools).
-
-```shell
-git clone git@github.com:apache/airflow-client-python.git
-cd airflow-client-python
-python setup.py install --user
 ```
-(or `sudo python setup.py install` to install the package for all users)
+
+If the python package is hosted on a repository, you can install directly using:
+
+```bash
+pip install git+https://github.com/apache/airflow-client-python.git
+```
+
+### Import check
 
 Then import the package:
+
 ```python
 import airflow_client.client
 ```
 
-## Changelog
-
-See [CHANGELOG.md](https://github.com/apache/airflow-client-python/blob/main/CHANGELOG.md) for keeping
-track on what has changed in the client.
-
-
 ## Getting Started
 
-Please follow the [installation procedure](#installation--usage) and then run the following
-example python script:
+Please follow the [installation procedure](#installation--usage) and then run the following:
 
 ```python
-import uuid
-
+import time
 import airflow_client.client
-try:
-    # If you have rich installed, you will have nice colored output of the API responses
-    from rich import print
-except ImportError:
-    print("Output will not be colored. Please install rich to get colored output: `pip install rich`")
-    pass
-from airflow_client.client.api import config_api, dag_api, dag_run_api
-from airflow_client.client.model.dag_run import DAGRun
+from pprint import pprint
+from airflow_client.client.api import config_api
+from airflow_client.client.model.config import Config
+from airflow_client.client.model.error import Error
 
-# The client must use the authentication and authorization parameters
+# Defining the host is optional and defaults to /api/v1
+# See configuration.py for a list of all supported configuration parameters.
+configuration = client.Configuration(host="/api/v1")
+
+# The client must configure the authentication and authorization parameters
 # in accordance with the API server security policy.
 # Examples for each auth method are provided below, use the example that
 # satisfies your auth use case.
-#
-# In case of the basic authentication below, make sure that Airflow is
-# configured also with the basic_auth as backend additionally to regular session backend needed
-# by the UI. In the `[api]` section of your `airflow.cfg` set:
-#
-# auth_backend = airflow.api.auth.backend.session,airflow.api.auth.backend.basic_auth
-#
-# Make sure that your user/name are configured properly - using the user/password that has admin
-# privileges in Airflow
+
+# Configure HTTP basic authorization: Basic
+configuration = client.Configuration(username="YOUR_USERNAME", password="YOUR_PASSWORD")
+
+
+# Enter a context with an instance of the API client
+with client.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = config_api.ConfigApi(api_client)
+
+    try:
+        # Get current configuration
+        api_response = api_instance.get_config()
+        pprint(api_response)
+    except client.ApiException as e:
+        print("Exception when calling ConfigApi->get_config: %s\n" % e)
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to */api/v1*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*ConfigApi* | [**get_config**](docs/ConfigApi.md#get_config) | **GET** /config | Get current configuration
+*ConnectionApi* | [**delete_connection**](docs/ConnectionApi.md#delete_connection) | **DELETE** /connections/{connection_id} | Delete a connection
+*ConnectionApi* | [**get_connection**](docs/ConnectionApi.md#get_connection) | **GET** /connections/{connection_id} | Get a connection
+*ConnectionApi* | [**get_connections**](docs/ConnectionApi.md#get_connections) | **GET** /connections | List connections
+*ConnectionApi* | [**patch_connection**](docs/ConnectionApi.md#patch_connection) | **PATCH** /connections/{connection_id} | Update a connection
+*ConnectionApi* | [**post_connection**](docs/ConnectionApi.md#post_connection) | **POST** /connections | Create a connection
+*ConnectionApi* | [**test_connection**](docs/ConnectionApi.md#test_connection) | **POST** /connections/test | Test a connection
+*DAGApi* | [**delete_dag**](docs/DAGApi.md#delete_dag) | **DELETE** /dags/{dag_id} | Delete a DAG
+*DAGApi* | [**get_dag**](docs/DAGApi.md#get_dag) | **GET** /dags/{dag_id} | Get basic information about a DAG
+*DAGApi* | [**get_dag_details**](docs/DAGApi.md#get_dag_details) | **GET** /dags/{dag_id}/details | Get a simplified representation of DAG
+*DAGApi* | [**get_dag_source**](docs/DAGApi.md#get_dag_source) | **GET** /dagSources/{file_token} | Get a source code
+*DAGApi* | [**get_dags**](docs/DAGApi.md#get_dags) | **GET** /dags | List DAGs
+*DAGApi* | [**get_task**](docs/DAGApi.md#get_task) | **GET** /dags/{dag_id}/tasks/{task_id} | Get simplified representation of a task
+*DAGApi* | [**get_tasks**](docs/DAGApi.md#get_tasks) | **GET** /dags/{dag_id}/tasks | Get tasks for DAG
+*DAGApi* | [**patch_dag**](docs/DAGApi.md#patch_dag) | **PATCH** /dags/{dag_id} | Update a DAG
+*DAGApi* | [**patch_dags**](docs/DAGApi.md#patch_dags) | **PATCH** /dags | Update DAGs
+*DAGApi* | [**post_clear_task_instances**](docs/DAGApi.md#post_clear_task_instances) | **POST** /dags/{dag_id}/clearTaskInstances | Clear a set of task instances
+*DAGApi* | [**post_set_task_instances_state**](docs/DAGApi.md#post_set_task_instances_state) | **POST** /dags/{dag_id}/updateTaskInstancesState | Set a state of task instances
+*DAGRunApi* | [**clear_dag_run**](docs/DAGRunApi.md#clear_dag_run) | **POST** /dags/{dag_id}/dagRuns/{dag_run_id}/clear | Clear a DAG run
+*DAGRunApi* | [**delete_dag_run**](docs/DAGRunApi.md#delete_dag_run) | **DELETE** /dags/{dag_id}/dagRuns/{dag_run_id} | Delete a DAG run
+*DAGRunApi* | [**get_dag_run**](docs/DAGRunApi.md#get_dag_run) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id} | Get a DAG run
+*DAGRunApi* | [**get_dag_runs**](docs/DAGRunApi.md#get_dag_runs) | **GET** /dags/{dag_id}/dagRuns | List DAG runs
+*DAGRunApi* | [**get_dag_runs_batch**](docs/DAGRunApi.md#get_dag_runs_batch) | **POST** /dags/~/dagRuns/list | List DAG runs (batch)
+*DAGRunApi* | [**get_upstream_dataset_events**](docs/DAGRunApi.md#get_upstream_dataset_events) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents | Get dataset events for a DAG run
+*DAGRunApi* | [**post_dag_run**](docs/DAGRunApi.md#post_dag_run) | **POST** /dags/{dag_id}/dagRuns | Trigger a new DAG run
+*DAGRunApi* | [**set_dag_run_note**](docs/DAGRunApi.md#set_dag_run_note) | **PATCH** /dags/{dag_id}/dagRuns/{dag_run_id}/setNote | Update the DagRun note.
+*DAGRunApi* | [**update_dag_run_state**](docs/DAGRunApi.md#update_dag_run_state) | **PATCH** /dags/{dag_id}/dagRuns/{dag_run_id} | Modify a DAG run
+*DagWarningApi* | [**get_dag_warnings**](docs/DagWarningApi.md#get_dag_warnings) | **GET** /dagWarnings | List dag warnings
+*DatasetApi* | [**get_dataset**](docs/DatasetApi.md#get_dataset) | **GET** /datasets/{uri} | Get a dataset
+*DatasetApi* | [**get_dataset_events**](docs/DatasetApi.md#get_dataset_events) | **GET** /datasets/events | Get dataset events
+*DatasetApi* | [**get_datasets**](docs/DatasetApi.md#get_datasets) | **GET** /datasets | List datasets
+*DatasetApi* | [**get_upstream_dataset_events**](docs/DatasetApi.md#get_upstream_dataset_events) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents | Get dataset events for a DAG run
+*EventLogApi* | [**get_event_log**](docs/EventLogApi.md#get_event_log) | **GET** /eventLogs/{event_log_id} | Get a log entry
+*EventLogApi* | [**get_event_logs**](docs/EventLogApi.md#get_event_logs) | **GET** /eventLogs | List log entries
+*ImportErrorApi* | [**get_import_error**](docs/ImportErrorApi.md#get_import_error) | **GET** /importErrors/{import_error_id} | Get an import error
+*ImportErrorApi* | [**get_import_errors**](docs/ImportErrorApi.md#get_import_errors) | **GET** /importErrors | List import errors
+*MonitoringApi* | [**get_health**](docs/MonitoringApi.md#get_health) | **GET** /health | Get instance status
+*MonitoringApi* | [**get_version**](docs/MonitoringApi.md#get_version) | **GET** /version | Get version information
+*PermissionApi* | [**get_permissions**](docs/PermissionApi.md#get_permissions) | **GET** /permissions | List permissions
+*PluginApi* | [**get_plugins**](docs/PluginApi.md#get_plugins) | **GET** /plugins | Get a list of loaded plugins
+*PoolApi* | [**delete_pool**](docs/PoolApi.md#delete_pool) | **DELETE** /pools/{pool_name} | Delete a pool
+*PoolApi* | [**get_pool**](docs/PoolApi.md#get_pool) | **GET** /pools/{pool_name} | Get a pool
+*PoolApi* | [**get_pools**](docs/PoolApi.md#get_pools) | **GET** /pools | List pools
+*PoolApi* | [**patch_pool**](docs/PoolApi.md#patch_pool) | **PATCH** /pools/{pool_name} | Update a pool
+*PoolApi* | [**post_pool**](docs/PoolApi.md#post_pool) | **POST** /pools | Create a pool
+*ProviderApi* | [**get_providers**](docs/ProviderApi.md#get_providers) | **GET** /providers | List providers
+*RoleApi* | [**delete_role**](docs/RoleApi.md#delete_role) | **DELETE** /roles/{role_name} | Delete a role
+*RoleApi* | [**get_role**](docs/RoleApi.md#get_role) | **GET** /roles/{role_name} | Get a role
+*RoleApi* | [**get_roles**](docs/RoleApi.md#get_roles) | **GET** /roles | List roles
+*RoleApi* | [**patch_role**](docs/RoleApi.md#patch_role) | **PATCH** /roles/{role_name} | Update a role
+*RoleApi* | [**post_role**](docs/RoleApi.md#post_role) | **POST** /roles | Create a role
+*TaskInstanceApi* | [**get_extra_links**](docs/TaskInstanceApi.md#get_extra_links) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/links | List extra links
+*TaskInstanceApi* | [**get_log**](docs/TaskInstanceApi.md#get_log) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number} | Get logs
+*TaskInstanceApi* | [**get_mapped_task_instance**](docs/TaskInstanceApi.md#get_mapped_task_instance) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index} | Get a mapped task instance
+*TaskInstanceApi* | [**get_mapped_task_instances**](docs/TaskInstanceApi.md#get_mapped_task_instances) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/listMapped | List mapped task instances
+*TaskInstanceApi* | [**get_task_instance**](docs/TaskInstanceApi.md#get_task_instance) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id} | Get a task instance
+*TaskInstanceApi* | [**get_task_instances**](docs/TaskInstanceApi.md#get_task_instances) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances | List task instances
+*TaskInstanceApi* | [**get_task_instances_batch**](docs/TaskInstanceApi.md#get_task_instances_batch) | **POST** /dags/~/dagRuns/~/taskInstances/list | List task instances (batch)
+*TaskInstanceApi* | [**patch_mapped_task_instance**](docs/TaskInstanceApi.md#patch_mapped_task_instance) | **PATCH** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index} | Updates the state of a mapped task instance
+*TaskInstanceApi* | [**patch_task_instance**](docs/TaskInstanceApi.md#patch_task_instance) | **PATCH** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id} | Updates the state of a task instance
+*TaskInstanceApi* | [**set_mapped_task_instance_note**](docs/TaskInstanceApi.md#set_mapped_task_instance_note) | **PATCH** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}/setNote | Update the TaskInstance note.
+*TaskInstanceApi* | [**set_task_instance_note**](docs/TaskInstanceApi.md#set_task_instance_note) | **PATCH** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/setNote | Update the TaskInstance note.
+*UserApi* | [**delete_user**](docs/UserApi.md#delete_user) | **DELETE** /users/{username} | Delete a user
+*UserApi* | [**get_user**](docs/UserApi.md#get_user) | **GET** /users/{username} | Get a user
+*UserApi* | [**get_users**](docs/UserApi.md#get_users) | **GET** /users | List users
+*UserApi* | [**patch_user**](docs/UserApi.md#patch_user) | **PATCH** /users/{username} | Update a user
+*UserApi* | [**post_user**](docs/UserApi.md#post_user) | **POST** /users | Create a user
+*VariableApi* | [**delete_variable**](docs/VariableApi.md#delete_variable) | **DELETE** /variables/{variable_key} | Delete a variable
+*VariableApi* | [**get_variable**](docs/VariableApi.md#get_variable) | **GET** /variables/{variable_key} | Get a variable
+*VariableApi* | [**get_variables**](docs/VariableApi.md#get_variables) | **GET** /variables | List variables
+*VariableApi* | [**patch_variable**](docs/VariableApi.md#patch_variable) | **PATCH** /variables/{variable_key} | Update a variable
+*VariableApi* | [**post_variables**](docs/VariableApi.md#post_variables) | **POST** /variables | Create a variable
+*XComApi* | [**get_xcom_entries**](docs/XComApi.md#get_xcom_entries) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries | List XCom entries
+*XComApi* | [**get_xcom_entry**](docs/XComApi.md#get_xcom_entry) | **GET** /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key} | Get an XCom entry
+
+
+## Documentation For Models
+
+ - [Action](docs/Action.md)
+ - [ActionCollection](docs/ActionCollection.md)
+ - [ActionCollectionAllOf](docs/ActionCollectionAllOf.md)
+ - [ActionResource](docs/ActionResource.md)
+ - [BasicDAGRun](docs/BasicDAGRun.md)
+ - [ClassReference](docs/ClassReference.md)
+ - [ClearDagRun](docs/ClearDagRun.md)
+ - [ClearTaskInstances](docs/ClearTaskInstances.md)
+ - [CollectionInfo](docs/CollectionInfo.md)
+ - [Color](docs/Color.md)
+ - [Config](docs/Config.md)
+ - [ConfigOption](docs/ConfigOption.md)
+ - [ConfigSection](docs/ConfigSection.md)
+ - [Connection](docs/Connection.md)
+ - [ConnectionAllOf](docs/ConnectionAllOf.md)
+ - [ConnectionCollection](docs/ConnectionCollection.md)
+ - [ConnectionCollectionAllOf](docs/ConnectionCollectionAllOf.md)
+ - [ConnectionCollectionItem](docs/ConnectionCollectionItem.md)
+ - [ConnectionTest](docs/ConnectionTest.md)
+ - [CronExpression](docs/CronExpression.md)
+ - [DAG](docs/DAG.md)
+ - [DAGCollection](docs/DAGCollection.md)
+ - [DAGCollectionAllOf](docs/DAGCollectionAllOf.md)
+ - [DAGDetail](docs/DAGDetail.md)
+ - [DAGDetailAllOf](docs/DAGDetailAllOf.md)
+ - [DAGRun](docs/DAGRun.md)
+ - [DAGRunCollection](docs/DAGRunCollection.md)
+ - [DAGRunCollectionAllOf](docs/DAGRunCollectionAllOf.md)
+ - [DagScheduleDatasetReference](docs/DagScheduleDatasetReference.md)
+ - [DagState](docs/DagState.md)
+ - [DagWarning](docs/DagWarning.md)
+ - [DagWarningCollection](docs/DagWarningCollection.md)
+ - [DagWarningCollectionAllOf](docs/DagWarningCollectionAllOf.md)
+ - [Dataset](docs/Dataset.md)
+ - [DatasetCollection](docs/DatasetCollection.md)
+ - [DatasetCollectionAllOf](docs/DatasetCollectionAllOf.md)
+ - [DatasetEvent](docs/DatasetEvent.md)
+ - [DatasetEventCollection](docs/DatasetEventCollection.md)
+ - [DatasetEventCollectionAllOf](docs/DatasetEventCollectionAllOf.md)
+ - [Error](docs/Error.md)
+ - [EventLog](docs/EventLog.md)
+ - [EventLogCollection](docs/EventLogCollection.md)
+ - [EventLogCollectionAllOf](docs/EventLogCollectionAllOf.md)
+ - [ExtraLink](docs/ExtraLink.md)
+ - [ExtraLinkCollection](docs/ExtraLinkCollection.md)
+ - [HealthInfo](docs/HealthInfo.md)
+ - [HealthStatus](docs/HealthStatus.md)
+ - [ImportError](docs/ImportError.md)
+ - [ImportErrorCollection](docs/ImportErrorCollection.md)
+ - [ImportErrorCollectionAllOf](docs/ImportErrorCollectionAllOf.md)
+ - [InlineResponse200](docs/InlineResponse200.md)
+ - [InlineResponse2001](docs/InlineResponse2001.md)
+ - [Job](docs/Job.md)
+ - [ListDagRunsForm](docs/ListDagRunsForm.md)
+ - [ListTaskInstanceForm](docs/ListTaskInstanceForm.md)
+ - [MetadatabaseStatus](docs/MetadatabaseStatus.md)
+ - [PluginCollection](docs/PluginCollection.md)
+ - [PluginCollectionAllOf](docs/PluginCollectionAllOf.md)
+ - [PluginCollectionItem](docs/PluginCollectionItem.md)
+ - [Pool](docs/Pool.md)
+ - [PoolCollection](docs/PoolCollection.md)
+ - [PoolCollectionAllOf](docs/PoolCollectionAllOf.md)
+ - [Provider](docs/Provider.md)
+ - [ProviderCollection](docs/ProviderCollection.md)
+ - [RelativeDelta](docs/RelativeDelta.md)
+ - [Resource](docs/Resource.md)
+ - [Role](docs/Role.md)
+ - [RoleCollection](docs/RoleCollection.md)
+ - [RoleCollectionAllOf](docs/RoleCollectionAllOf.md)
+ - [SLAMiss](docs/SLAMiss.md)
+ - [ScheduleInterval](docs/ScheduleInterval.md)
+ - [SchedulerStatus](docs/SchedulerStatus.md)
+ - [SetDagRunNote](docs/SetDagRunNote.md)
+ - [SetTaskInstanceNote](docs/SetTaskInstanceNote.md)
+ - [Tag](docs/Tag.md)
+ - [Task](docs/Task.md)
+ - [TaskCollection](docs/TaskCollection.md)
+ - [TaskExtraLinks](docs/TaskExtraLinks.md)
+ - [TaskInstance](docs/TaskInstance.md)
+ - [TaskInstanceCollection](docs/TaskInstanceCollection.md)
+ - [TaskInstanceCollectionAllOf](docs/TaskInstanceCollectionAllOf.md)
+ - [TaskInstanceReference](docs/TaskInstanceReference.md)
+ - [TaskInstanceReferenceCollection](docs/TaskInstanceReferenceCollection.md)
+ - [TaskOutletDatasetReference](docs/TaskOutletDatasetReference.md)
+ - [TaskState](docs/TaskState.md)
+ - [TimeDelta](docs/TimeDelta.md)
+ - [Trigger](docs/Trigger.md)
+ - [TriggerRule](docs/TriggerRule.md)
+ - [UpdateDagRunState](docs/UpdateDagRunState.md)
+ - [UpdateTaskInstance](docs/UpdateTaskInstance.md)
+ - [UpdateTaskInstancesState](docs/UpdateTaskInstancesState.md)
+ - [User](docs/User.md)
+ - [UserAllOf](docs/UserAllOf.md)
+ - [UserCollection](docs/UserCollection.md)
+ - [UserCollectionAllOf](docs/UserCollectionAllOf.md)
+ - [UserCollectionItem](docs/UserCollectionItem.md)
+ - [UserCollectionItemRoles](docs/UserCollectionItemRoles.md)
+ - [Variable](docs/Variable.md)
+ - [VariableAllOf](docs/VariableAllOf.md)
+ - [VariableCollection](docs/VariableCollection.md)
+ - [VariableCollectionAllOf](docs/VariableCollectionAllOf.md)
+ - [VariableCollectionItem](docs/VariableCollectionItem.md)
+ - [VersionInfo](docs/VersionInfo.md)
+ - [WeightRule](docs/WeightRule.md)
+ - [XCom](docs/XCom.md)
+ - [XComAllOf](docs/XComAllOf.md)
+ - [XComCollection](docs/XComCollection.md)
+ - [XComCollectionAllOf](docs/XComCollectionAllOf.md)
+ - [XComCollectionItem](docs/XComCollectionItem.md)
+
+## Documentation For Authorization
+
+By default the generated client supports the three authentication schemes:
+
+* Basic
+* GoogleOpenID
+* Kerberos
+
+However, you can generate client and documentation with your own schemes by adding your own schemes in
+the security section of the OpenAPI specification. You can do it with Breeze CLI by adding the
+``--security-schemes`` option to the ``breeze release-management prepare-python-client`` command.
+
+## Basic "smoke" tests
+
+You can run basic smoke tests to check if the client is working properly - we have a simple test script
+that uses the API to run the tests. To do that, you need to:
+
+* install the `apache-airflow-client` package as described above
+* install ``rich`` Python package
+* download the [test_python_client.py](test_python_client.py) file
+* make sure you have test airflow installation running. Do not experiment with your production deployment
+* configure your airflow webserver to enable basic authentication
+  In the `[api]` section of your `airflow.cfg` set:
+
+```ini
+[api]
+auth_backend = airflow.api.auth.backend.session,airflow.api.auth.backend.basic_auth
+```
+
+You can also set it by env variable:
+`export AIRFLOW__API__AUTH_BACKENDS=airflow.api.auth.backend.session,airflow.api.auth.backend.basic_auth`
+
+* configure your airflow webserver to load example dags
+  In the `[core]` section of your `airflow.cfg` set:
+
+```ini
+[core]
+load_examples = True
+```
+
+You can also set it by env variable: `export AIRFLOW__CORE__LOAD_EXAMPLES=True`
+
+* optionally expose configuration (NOTE! that this is dangerous setting). The script will happily run with
+  the default setting, but if you want to see the configuration, you need to expose it.
+  In the `[webserver]` section of your `airflow.cfg` set:
+
+```ini
+[webserver]
+expose_config = True
+```
+
+You can also set it by env variable: `export AIRFLOW__WEBSERVER__EXPOSE_CONFIG=True`
+
+* Configure your host/ip/user/password in the `test_python_client.py` file
+
+```python
+import airflow_client
 
 # Configure HTTP basic authorization: Basic
 configuration = airflow_client.client.Configuration(
-    host="http://localhost:8080/api/v1",
-    username='admin',
-    password='admin'
+    host="http://localhost:8080/api/v1", username="admin", password="admin"
 )
-
-# Make sure in the [core] section, the  `load_examples` config is set to True in your airflow.cfg
-# or AIRFLOW__CORE__LOAD_EXAMPLES environment variable set to True
-DAG_ID = "example_bash_operator"
-
-# Enter a context with an instance of the API client
-with airflow_client.client.ApiClient(configuration) as api_client:
-
-    errors = False
-
-    print('[blue]Getting DAG list')
-    dag_api_instance = dag_api.DAGApi(api_client)
-    try:
-        api_response = dag_api_instance.get_dags()
-        print(api_response)
-    except airflow_client.client.OpenApiException as e:
-        print("[red]Exception when calling DagAPI->get_dags: %s\n" % e)
-        errors = True
-    else:
-        print('[green]Getting DAG list successful')
-
-
-    print('[blue]Getting Tasks for a DAG')
-    try:
-        api_response = dag_api_instance.get_tasks(DAG_ID)
-        print(api_response)
-    except airflow_client.client.exceptions.OpenApiException as e:
-        print("[red]Exception when calling DagAPI->get_tasks: %s\n" % e)
-        errors = True
-    else:
-        print('[green]Getting Tasks successful')
-
-
-    print('[blue]Triggering a DAG run')
-    dag_run_api_instance = dag_run_api.DAGRunApi(api_client)
-    try:
-        # Create a DAGRun object (no dag_id should be specified because it is read-only property of DAGRun)
-        # dag_run id is generated randomly to allow multiple executions of the script
-        dag_run = DAGRun(
-            dag_run_id='some_test_run_' + uuid.uuid4().hex,
-        )
-        api_response = dag_run_api_instance.post_dag_run(DAG_ID, dag_run)
-        print(api_response)
-    except airflow_client.client.exceptions.OpenApiException as e:
-        print("[red]Exception when calling DAGRunAPI->post_dag_run: %s\n" % e)
-        errors = True
-    else:
-        print('[green]Posting DAG Run successful')
-
-    # Get current configuration. Note, this is disabled by default with most installation.
-    # You need to set `expose_config = True` in Airflow configuration in order to retrieve configuration.
-    conf_api_instance = config_api.ConfigApi(api_client)
-    try:
-        api_response = conf_api_instance.get_config()
-        print(api_response)
-    except airflow_client.client.OpenApiException as e:
-        print("[red]Exception when calling ConfigApi->get_config: %s\n" % e)
-        errors = True
-    else:
-        print('[green]Config retrieved successfully')
-
-    if errors:
-        print ('\n[red]There were errors while running the script - see above for details')
-    else:
-        print ('\n[green]Everything went well')
 ```
 
-See [README](https://github.com/apache/airflow-client-python/blob/main/airflow_client/README.md#documentation-for-api-endpoints) 
-for full client API documentation.
\ No newline at end of file
+Run `python test_python_client.py` and you should see colored output showing attempts to connect and status.
+
+
+## Notes for Large OpenAPI documents
+
+If the OpenAPI document is large, imports in client.apis and client.models may fail with a
+RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:
+
+Solution 1:
+Use specific imports for apis and models like:
+
+- `from airflow_client.client.api.default_api import DefaultApi`
+- `from airflow_client.client.model.pet import Pet`
+
+Solution 2:
+Before importing the package, adjust the maximum recursion limit as shown below:
+
+```python
+import sys
+
+sys.setrecursionlimit(1500)
+import airflow_client.client
+from airflow_client.client.apis import *
+from airflow_client.client.models import *
+```
+
+## Authors
+
+dev@airflow.apache.org
diff --git a/dev/README_RELEASE_CLIENT.md b/dev/README_RELEASE_CLIENT.md
deleted file mode 100644
index 9ad59fe..0000000
--- a/dev/README_RELEASE_CLIENT.md
+++ /dev/null
@@ -1,459 +0,0 @@
-<!--
- 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.
- -->
-
-# Release Process
-
-Typically, releases are done coinciding with major and minor releases to Airflow. Therefore, a release of (for example) 
-2.3.0 of this client would correspond with 2.3.X of Airflow.
-
-The Python client is generated using Airflow's [openapi spec](https://github.com/apache/airflow/blob/master/clients/gen/python.sh).
-To update the client for new APIs do the following steps:
-
-```bash
-# set the version of the client
-export VERSION=2.0.0rc1
-# clone this repo
-git clone git@github.com:apache/airflow-client-python.git
-cd airflow-client-python
-export CLIENT_REPO_ROOT=$(pwd)
-cd ..
-
-# clone Airflow repo (if not already)
-git clone git@github.com:apache/airflow.git
-cd airflow
-export AIRFLOW_REPO_ROOT=$(pwd)
-```
-Edit the file `airflow/airflow/api_connexion/openapi/v1.yaml`
-Make sure it has the following `securitySchema`s listed under security `section`
-```yaml
-security:
-  - Basic: []
-  - GoogleOpenId: []
-  - Kerberos: []
-```
-If your deployment of Airflow uses any different authentication mechanism than the three listed above, you might need to make further changes to the `v1.yaml` and generate your own client, see [OpenAPI Schema specification](https://swagger.io/docs/specification/authentication/) for details.
-(*These changes should not be commited to the upstream `v1.yaml` [as it will generate misleading openapi documentaion](https://github.com/apache/airflow/pull/17174)*)
-
-
-```bash
-
-# bump up the version in python.sh & run the following command
-${AIRFLOW_REPO_ROOT}/clients/gen/python.sh airflow/api_connexion/openapi/v1.yaml ${CLIENT_REPO_ROOT}/airflow_client
-
-cd ${CLIENT_REPO_ROOT}
-```
-
-- Set your version in `setup.py` (without the RC tag)
-
-- Get a diff between the last airflow version and the current airflow version
-  which this release is based on:
-
-      ```shell script
-      # Run this command in Airflow Repo
-      git log 2.3.0..2.5.0 --pretty=oneline -- airflow/api_connexion/openapi/v1.yaml
-      ```
-
-- Update CHANGELOG.md with the details.
-- Commit the Changes with the message "Add Client Version ${VERSION}":
-  ```shell script
-  git add .
-  git commit -m "Add Client Version ${VERSION}"
-  ```
-- Raise a PR in airflow-client-python with the above changes
-- Merge the above PR when approved before proceeding
-
-# Prepare the Apache Airflow Python Client Package RC
-
-## Build RC artifacts
-
-The Release Candidate artifacts we vote upon should be the exact ones we vote against, without any modification than
-renaming – i.e. the contents of the files must be the same between voted release candidate and final release. Because
-of this the version in the built artifacts that will become the official Apache releases must not include the rcN suffix.
-
-- Set environment variables
-  
-    ```shell script
-    # Set Version
-    export VERSION=2.0.0rc1
-    export VERSION_WITHOUT_RC=${VERSION%rc?}
-    # Set the airflow version that this release is based
-    export AIRFLOW_VERSION=2.1.4 
-
-
-    # Example after cloning
-    git clone https://github.com/apache/airflow-client-python.git 
-    cd airflow-client-python
-    export CLIENT_REPO_ROOT=$(pwd)
-    ```
-
-- Tag your release
-
-    ```shell script
-    git tag -s ${VERSION} -m "Airflow Python Client {VERSION}"
-    ```
-
-- Clean the checkout: the sdist step below will
-
-    ```shell script
-    git clean -fxd
-    ```
-
-- Tarball the repo
-
-    ```shell script
-    mkdir dist
-    git archive --format=tar.gz ${VERSION} --prefix=apache-airflow-client-${VERSION_WITHOUT_RC}/ -o dist/apache-airflow-client-${VERSION_WITHOUT_RC}-source.tar.gz
-    ```
-
-- Generate sdist
-
-  NOTE: Make sure your checkout is clean at this stage - any untracked or changed files will otherwise be included
-  in the file produced.
-
-    ```shell script
-    pip install wheel
-    python setup.py sdist bdist_wheel
-    ```
-
-- Rename the sdist
-
-    ```shell script
-    mv dist/apache-airflow-client-${VERSION_WITHOUT_RC}.tar.gz dist/apache-airflow-client-${VERSION_WITHOUT_RC}-bin.tar.gz
-    mv dist/apache_airflow_client-${VERSION_WITHOUT_RC}-py3-none-any.whl dist/apache_airflow_client-${VERSION_WITHOUT_RC}-py3-none-any.whl
-    ```
-
-- Generate SHA512/ASC (If you have not generated a key yet, generate it by following instructions on
-  http://www.apache.org/dev/openpgp.html#key-gen-generate-key)
-
-    ```shell script
-    pushd dist
-    ${CLIENT_REPO_ROOT}/dev/sign.sh *
-    popd
-    ```
-
-- Push the artifacts to ASF dev dist repo
-
-```shell script
-# First clone the repo
-svn checkout https://dist.apache.org/repos/dist/dev/airflow airflow-dev
-
-# Create new folder for the release
-cd airflow-dev/clients/python
-svn mkdir ${VERSION}
-
-# Move the artifacts to svn folder & commit
-mv ${CLIENT_REPO_ROOT}/dist/apache{-,_}*client-${VERSION_WITHOUT_RC}* ${VERSION}/
-cd ${VERSION}
-svn add *
-svn commit -m "Add artifacts for Apache Airflow Python Client ${VERSION}"
-cd ${CLIENT_REPO_ROOT}
-rm -rf airflow-dev
-```
-
-## Prepare PyPI convenience "snapshot" packages
-
-At this point we have the artefact that we vote on, but as a convenience to developers we also want to
-publish "snapshots" of the RC builds to pypi for installing via pip.
-
-To do this we need to
-
-- Build the package:
-
-    ```shell script
-    cd ${CLIENT_REPO_ROOT}
-    python setup.py egg_info --tag-build "$(sed -e "s/^[0-9.]*//" <<<"$VERSION")" sdist bdist_wheel
-    ```
-
-- Verify the artifacts that would be uploaded:
-
-    ```shell script
-    twine check dist/*
-    ```
-
-- Upload the package to PyPi's test environment:
-
-    ```shell script
-    twine upload --repository-url=https://test.pypi.org/legacy/ dist/*
-    ```
-
-- Verify that the test package looks good by downloading it and installing it into a virtual environment. The package
-  download link is available at:
-  https://test.pypi.org/project/apache-airflow-client/#files
-
-  Or via pypi
-  pip install -i https://test.pypi.org/simple/ apache-airflow-client==${VERSION}
-
-- Upload the package to PyPi's production environment:
-
-  ```shell script
-  twine upload -r pypi dist/*
-  ```
-
-- Again, confirm that the package is available here:
-  https://pypi.python.org/pypi/apache-airflow-client
-
-It is important to stress that this snapshot should not be named "release", and it
-is not supposed to be used by and advertised to the end-users who do not read the devlist.
-
-- Push Tag for the release candidate
-
-```shell script
-git push origin ${VERSION}
-```
-
-## Prepare Vote email on the Airflow Client release candidate
-
-Subject:
-
-```shell script
-cat <<EOF
-[VOTE] Release Airflow Python Client ${VERSION_WITHOUT_RC} from ${VERSION}
-EOF
-```
-
-Body:
-  
-```shell script
-cat <<EOF
-Hey fellow Airflowers,
-
-I have cut the release candidate for the Airflow Python Client ${VERSION}.
-The client consists of APIs corresponding to REST APIs available in
-*Apache Airflow ${AIRFLOW_VERSION}*. This email is calling for a vote on
-the release, which will last for 72 hours. Consider this my (binding) +1.
-
-Airflow Client ${VERSION} is available at:
-https://dist.apache.org/repos/dist/dev/airflow/clients/python/$VERSION/
-
-Or also available at PyPI:
-https://pypi.org/project/apache-airflow-client/$VERSION/
-
-*apache-airflow-client-${VERSION}-source.tar.gz* is a source release that comes with
-INSTALL instructions.
-*apache-airflow-client-${VERSION}-bin.tar.gz* is the binary Python "sdist" release.
-
-Public keys are available at:
-https://dist.apache.org/repos/dist/release/airflow/KEYS
-
-Only votes from PMC members are binding, but the release manager should
-encourage members of the community to test the release and vote with
-"(non-binding)".
-
-*Changelog:*
-
-*Major changes:*
-...
-
-*Major fixes:*
-...
-
-*New API supported:*
-...
-
-Cheers,
-<your name>
-EOF
-```
-
-# Verify the release candidate by PMCs
-See Airflow process documented [here](https://github.com/apache/airflow/blob/master/dev/README_RELEASE_AIRFLOW.md#verify-the-release-candidate-by-pmcs).
-
-## SVN check
-See Airflow process documented [here](https://github.com/apache/airflow/blob/master/dev/README_RELEASE_AIRFLOW.md#svn-check) (just replace Airflow with Airflow Client).
-
-## Licence check
-See Airflow process documented [here](https://github.com/apache/airflow/blob/master/dev/README_RELEASE_AIRFLOW.md#licence-check).
-
-## Signature check
-See Airflow process documented [here](https://github.com/apache/airflow/blob/master/dev/README_RELEASE_AIRFLOW.md#signature-check).
-
-## Sources check
-
-The code of the Python Client is generated using OpenAPI generator and the generated code is committed to
-the repository, therefore the Source code check should consist of two steps:
-
-1. Checkout the release tag of the "airflow-client-python"
-2. Follow the [Release process](#release-process) above and generate client's code above
-3. Run ``git diff`` to see the differences - review them. Generally, the code generated should only contain
-   small differences regarding authentication.
-4. git reset --hard <RELEASE_TAG>
-
-Compare the sources with the packaged sources following the process described in Airflow:
-[here](https://github.com/apache/airflow/blob/master/dev/README_RELEASE_AIRFLOW.md#signature-check).
-
-# Verify release candidates by Contributors
-This can be done (and we encourage to) by any of the Contributors. In fact, it's best if the
-actual users of Airflow Client test it in their own staging/test installations. Each release candidate
-is available on PyPI apart from SVN packages, so everyone should be able to install
-the release candidate version of Airflow Client via simply (<VERSION> is 2.0.0 for example, and <X> is
-release candidate number 1,2,3,....).
-
-```shell script
-pip install apache-airflow-client==<VERSION>rc<X>
-```
-
-Once you install and run Airflow Client, you should perform any verification you see as necessary to check
-that the client works as you expected.
-
-# Publish the final Apache Airflow client release
-
-## Summarize the voting for the Apache Airflow client release
-
-```shell script
-Hello,
-
-Apache Airflow Python Client 2.5.0 (based on RC1) has been accepted.
-
-3 "+1" binding votes received:
-- Ephraim Anierobi
-- Jarek Potiuk
-- Jed Cunningham
-
-
-1 "+1" non-binding votes received:
-
-- Pierre Jeambrun
-
-Vote thread:
-https://lists.apache.org/thread/1qcj0r67dff3zg0w2vyfhr30fx9xtp3y
-
-I'll continue with the release process, and the release announcement will follow shortly.
-
-Cheers,
-<your name>
-```
-
-## Publish release to SVN
-
-```shell script
-# Go to Airflow python client sources first
-cd <YOUR_AIRFLOW_CLIENT_REPO_ROOT>
-export CLIENT_REPO_ROOT="$(pwd)"
-cd ..
-# Clone the AS
-[ -d asf-dist ] || svn checkout --depth=immediates https://dist.apache.org/repos/dist asf-dist
-svn update --set-depth=infinity asf-dist/{release,dev}/airflow
-CLIENT_DEV_SVN="${PWD}/asf-dist/dev/airflow/clients/python"
-CLIENT_RELEASE_SVN="${PWD}/asf-dist/release/airflow/clients/python"
-cd "${CLIENT_RELEASE_SVN}"
-
-export RC=2.0.0rc1
-export VERSION=${RC/rc?/}
-
-# Create new folder for the release
-svn mkdir ${VERSION}
-cd ${VERSION}
-
-# Move the artifacts to svn folder & commit
-for f in ${CLIENT_DEV_SVN}/$RC/*; do 
-  svn cp $f . ; 
-done
-svn commit -m "Release Apache Airflow Python Client ${VERSION} from ${RC}"
-
-# Remove old release
-# http://www.apache.org/legal/release-policy.html#when-to-archive
-cd ..
-export PREVIOUS_VERSION=1.0.0
-svn rm ${PREVIOUS_VERSION}
-svn commit -m "Remove old release: ${PREVIOUS_VERSION}"
-```
-
-Verify that the packages appear in [airflow](https://dist.apache.org/repos/dist/release/airflow/clients/python)
-
-## Prepare PyPI "release" packages
-
-At this point we release an official package:
-
-- Copy the packages from the SVN into the dist folder in CLIENT_REPO_ROOT:
-
-    ```shell script
-    rm -rf ${CLIENT_REPO_ROOT}/dist
-    mkdir ${CLIENT_REPO_ROOT}/dist
-    cp ${CLIENT_RELEASE_SVN}/${VERSION}/apache-airflow-client-${VERSION}-bin.tar.gz ${CLIENT_REPO_ROOT}/dist/
-    cp ${CLIENT_RELEASE_SVN}/${VERSION}/apache_airflow_client-${VERSION}-py3-none-any.whl ${CLIENT_REPO_ROOT}/dist/
-    # Remove the -bin
-    mv ${CLIENT_REPO_ROOT}/dist/apache-airflow-client-${VERSION}-bin.tar.gz ${CLIENT_REPO_ROOT}/dist/apache-airflow-client-${VERSION}.tar.gz
-    ```
-
-- Verify the artifacts that would be uploaded:
-
-    ```shell script
-    twine check dist/*
-    ```
-
-- Upload the package to PyPi's production environment:
-
-    ```shell script
-    twine upload -r pypi dist/*
-    ```
-
-- Confirm that the package is available here: https://pypi.python.org/pypi/apache-airflow-client
-
-- Push Tag for the final version
-
-    ```shell script
-    git tag ${VERSION}
-    git push origin ${VERSION}
-    ```
-
-## Create release on GitHub
-
-Create a new release on GitHub with the release notes and assets from the release svn.
-
-## Notify developers of release
-
-Notify users@airflow.apache.org (cc'ing dev@airflow.apache.org) that the artifacts have been published:
-
-Subject:
-
-```shell script
-    cat <<EOF
-    [ANNOUNCE] Apache Airflow Python Client ${VERSION} Released
-    EOF
-```
-Body: 
-
-```shell script
-    cat <<EOF
-    Dear Airflow community,
-
-I'm happy to announce that Airflow Python Client ${VERSION} was just released.
-
-We also made this version available on PyPI for convenience:
-`pip install apache-airflow-client`
-https://pypi.org/project/apache-airflow-client/${VERSION}/
-
-The documentation is available at:
-https://airflow.apache.org/docs/apache-airflow/stable/stable-rest-api-ref.html
-
-Find the changelog here for more details:
-https://github.com/apache/airflow-client-python/blob/main/CHANGELOG.md
-
-
-Cheers,
-<your name>
-EOF
-```
-Send the same email to announce@apache.org, except change the opening line to Dear community,. It is more reliable to send it via the web ui at https://lists.apache.org/list.html?announce@apache.org (press "c" to compose a new thread)
-
-
-
-## Add release data to Apache Committee Report Helper
-
-Add the release data (version and date) at: https://reporter.apache.org/addrelease.html?airflow
diff --git a/dev/insert_readme_example.py b/dev/insert_readme_example.py
deleted file mode 100755
index 9bbf902..0000000
--- a/dev/insert_readme_example.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python3
-# 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.
-
-from pathlib import Path
-
-BASE_DIR = Path(__file__).resolve().parent.parent
-
-if __name__ == '__main__':
-    example = (BASE_DIR / "dev" / "test_python_client.py").read_text().splitlines()
-    example = example[example.index("# under the License.")+1:]   # Remove license header
-    readme_lines = (BASE_DIR / "README.md").read_text().splitlines()
-    result_lines = []
-    skip_lines = False
-    changes_made = False
-    for line in readme_lines:
-        if line.strip().startswith("example python script:"):
-            result_lines.append(line)
-            result_lines.append("")
-            result_lines.append("```python")
-            result_lines.extend(example)
-            result_lines.append("```")
-            skip_lines = True
-            changes_made = True
-        else:
-            if not skip_lines:
-                result_lines.append(line)
-            if line.strip() == "```":
-                skip_lines = False
-    (BASE_DIR / "README.md").write_text("\n".join(result_lines))
-    if not changes_made:
-        raise Exception("Could not find example python script in README.md to replace. "
-                        "Please make sure `example python script:` line is in README.md")
diff --git a/dev/sign.sh b/dev/sign.sh
deleted file mode 100755
index 178ba3c..0000000
--- a/dev/sign.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-set -euo pipefail
-
-# Use this to sign the tar balls generated from
-# python setup.py sdist --formats=gztar
-# ie. sign.sh <my_tar_ball>
-# you will still be required to type in your signing key password
-# or it needs to be available in your keychain
-
-# Which key to sign releases with? This can be a (partial) email address or a
-# key id. By default use any apache.org key
-SIGN_WITH="${SIGN_WITH:-apache.org}"
-
-for name in "${@}"
-do
-    gpg --yes --armor --local-user "$SIGN_WITH" --output "${name}.asc" --detach-sig "${name}"
-    shasum -a 512 "${name}" > "${name}.sha512"
-done
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..a8a0e5b
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,105 @@
+# 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.
+
+[build-system]
+requires = ["hatchling"]
+build-backend = "hatchling.build"
+
+[project]
+name = "apache-airflow-client"
+dynamic = ["version"]
+description = "Apache Airflow API (Stable)"
+readme = "README.md"
+license-files.globs = ["LICENSE", "NOTICE"]
+requires-python = "~=3.8"
+authors = [
+    { name = "Apache Software Foundation", email = "dev@airflow.apache.org" },
+]
+keywords = [
+    "Apache Airflow API (Stable)",
+    "OpenAPI",
+    "OpenAPI-Generator",
+]
+classifiers = [
+    "Development Status :: 5 - Production/Stable",
+    "Environment :: Console",
+    "Environment :: Web Environment",
+    "Framework :: Apache Airflow",
+    "Intended Audience :: Developers",
+    "Intended Audience :: System Administrators",
+    "License :: OSI Approved :: Apache Software License",
+    "Programming Language :: Python :: 3.8",
+    "Programming Language :: Python :: 3.9",
+    "Programming Language :: Python :: 3.10",
+    "Programming Language :: Python :: 3.11",
+    "Topic :: System :: Monitoring",
+]
+
+dependencies = [
+    "python-dateutil",
+    "urllib3 >= 1.25.3",
+]
+
+[project.urls]
+"Bug Tracker" = "https://github.com/apache/airflow-client-python/issues"
+Changelog = "https://github.com/apache/airflow-client-python/blob/main/CHANGELOG.md"
+Documentation = "https://airflow.apache.org/docs/apache-airflow/stable/stable-rest-api-ref.html"
+Download = "https://archive.apache.org/dist/airflow/clients/python/"
+Homepage = "https://airflow.apache.org/"
+"Source Code" = "https://github.com/apache/airflow/clients/python"
+
+[tool.hatch.envs.test]
+dependencies = [
+    "pytest-cov>=2.8.1",
+    "python_dateutil >= 2.5.3",
+    "urllib3 >= 1.25.3",
+]
+
+[tool.hatch.envs.test.scripts]
+run-coverage = "pytest --cov-config=pyproject.toml --cov=airflow_client test --color=yes"
+run = "run-coverage --no-cov"
+
+[[tool.hatch.envs.test.matrix]]
+python = ["3.8", "3.9", "3.10", "3.11"]
+
+[tool.hatch.version]
+path = "./version.txt"
+pattern = "^(?P<version>.+)$"
+
+[tool.hatch.build.targets.sdist]
+artifacts = [
+    "/airflow_client",
+    "/docs",
+    "/test",
+    "v1.yaml",
+]
+include = [
+    "version.txt",
+    "INSTALL",
+    "README.md",
+]
+
+[tool.hatch.build.targets.wheel]
+artifacts = [
+    "/airflow_client",
+    "/docs",
+    "/test",
+    "v1.yaml",
+]
+include = [
+    "/airflow_client",
+]
diff --git a/requirements.txt b/requirements.txt
deleted file mode 100644
index 51a300c..0000000
--- a/requirements.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# 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.
-
-python_dateutil >= 2.5.3
-setuptools >= 21.0.0
-urllib3 >= 1.25.3
diff --git a/setup.cfg b/setup.cfg
deleted file mode 100644
index 74563b0..0000000
--- a/setup.cfg
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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.
-
-[flake8]
-max-line-length=99
-
-[metadata]
-name = apache-airflow-client
-description = Apache Airflow API (Stable)
-author = Apache Software Foundation
-author_email = dev@airflow.apache.org
-url = https://airflow.apache.org/
-long_description = file: README.md
-long_description_content_type = text/markdown
-license = Apache License 2.0
-license_files =
-   LICENSE
-   NOTICE
-project_urls =
-    Documentation=https://airflow.apache.org/docs/apache-airflow/stable/stable-rest-api-ref.html
-    Changelog=https://github.com/apache/airflow-client-python/blob/main/CHANGELOG.md
-    Bug Tracker=https://github.com/apache/airflow-client-python/issues
-    Source Code=https://github.com/apache/airflow-client-python
-
-[options]
-zip_safe = False
-include_package_data = True
-python_requires = ~=3.7
diff --git a/setup.py b/setup.py
deleted file mode 100644
index 4bb8e0c..0000000
--- a/setup.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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.
-
-"""
-    Airflow API (Stable)
-
-    The version of the OpenAPI document: 1.0.0
-    Contact: dev@airflow.apache.org
-    Generated by: https://openapi-generator.tech
-"""
-
-from setuptools import find_packages, setup  # noqa: H301
-
-VERSION = "2.8.0"
-# To install the library, run the following
-#
-# python setup.py install
-#
-# prerequisite: setuptools
-# http://pypi.python.org/pypi/setuptools
-
-REQUIRES = [
-    "urllib3 >= 1.25.3",
-    "python-dateutil",
-]
-
-setup(
-    version=VERSION,
-    keywords=["OpenAPI", "OpenAPI-Generator", "Apache Airflow API (Stable)"],
-    download_url=("https://archive.apache.org/dist/airflow/clients/python/" + VERSION),
-    install_requires=REQUIRES,
-    packages=find_packages(exclude=["test", "tests"]),
-)
diff --git a/spec/v1.yaml b/spec/v1.yaml
new file mode 100644
index 0000000..a8982dc
--- /dev/null
+++ b/spec/v1.yaml
@@ -0,0 +1,5488 @@
+components:
+  callbacks: {}
+  examples: {}
+  headers: {}
+  links: {}
+  parameters:
+    After:
+      description: Timestamp to select event logs occurring after.
+      in: query
+      name: after
+      required: false
+      schema:
+        format: date-time
+        type: string
+    Before:
+      description: Timestamp to select event logs occurring before.
+      in: query
+      name: before
+      required: false
+      schema:
+        format: date-time
+        type: string
+    ConnectionID:
+      description: The connection ID.
+      in: path
+      name: connection_id
+      required: true
+      schema:
+        type: string
+    ContinuationToken:
+      description: 'A token that allows you to continue fetching logs.
+
+        If passed, it will specify the location from which the download should be
+        continued.
+
+        '
+      in: query
+      name: token
+      required: false
+      schema:
+        type: string
+    DAGID:
+      description: The DAG ID.
+      in: path
+      name: dag_id
+      required: true
+      schema:
+        type: string
+    DAGRunID:
+      description: The DAG run ID.
+      in: path
+      name: dag_run_id
+      required: true
+      schema:
+        type: string
+    DatasetURI:
+      description: The encoded Dataset URI
+      in: path
+      name: uri
+      required: true
+      schema:
+        format: path
+        type: string
+    Event:
+      description: The name of event log.
+      in: query
+      name: event
+      required: false
+      schema:
+        type: string
+    EventLogID:
+      description: The event log ID.
+      in: path
+      name: event_log_id
+      required: true
+      schema:
+        type: integer
+    FileToken:
+      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.
+
+        '
+      in: path
+      name: file_token
+      required: true
+      schema:
+        type: string
+    FilterDAGID:
+      description: Returns objects matched by the DAG ID.
+      in: query
+      name: dag_id
+      required: false
+      schema:
+        type: string
+    FilterDatasetID:
+      description: The Dataset ID that updated the dataset.
+      in: query
+      name: dataset_id
+      schema:
+        type: integer
+    FilterDurationGTE:
+      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.
+
+        '
+      in: query
+      name: duration_gte
+      required: false
+      schema:
+        type: number
+    FilterDurationLTE:
+      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.
+
+        '
+      in: query
+      name: duration_lte
+      required: false
+      schema:
+        type: number
+    FilterEndDateGTE:
+      description: 'Returns objects greater or equal the specified date.
+
+
+        This can be combined with start_date_lte parameter to receive only the selected
+        period.
+
+        '
+      in: query
+      name: end_date_gte
+      required: false
+      schema:
+        format: date-time
+        type: string
+    FilterEndDateLTE:
+      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.
+
+        '
+      in: query
+      name: end_date_lte
+      required: false
+      schema:
+        format: date-time
+        type: string
+    FilterExecutionDateGTE:
+      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.
+
+        '
+      in: query
+      name: execution_date_gte
+      required: false
+      schema:
+        format: date-time
+        type: string
+    FilterExecutionDateLTE:
+      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.
+
+        '
+      in: query
+      name: execution_date_lte
+      required: false
+      schema:
+        format: date-time
+        type: string
+    FilterMapIndex:
+      description: Filter on map index for mapped task.
+      in: query
+      name: map_index
+      schema:
+        type: integer
+    FilterPool:
+      description: The value can be repeated to retrieve multiple matching values
+        (OR condition).
+      in: query
+      name: pool
+      required: false
+      schema:
+        items:
+          type: string
+        type: array
+    FilterQueue:
+      description: The value can be repeated to retrieve multiple matching values
+        (OR condition).
+      in: query
+      name: queue
+      schema:
+        items:
+          type: string
+        type: array
+    FilterSourceDAGID:
+      description: The DAG ID that updated the dataset.
+      in: query
+      name: source_dag_id
+      schema:
+        type: string
+    FilterSourceMapIndex:
+      description: The map index that updated the dataset.
+      in: query
+      name: source_map_index
+      schema:
+        type: integer
+    FilterSourceRunID:
+      description: The DAG run ID that updated the dataset.
+      in: query
+      name: source_run_id
+      schema:
+        type: string
+    FilterSourceTaskID:
+      description: The task ID that updated the dataset.
+      in: query
+      name: source_task_id
+      schema:
+        type: string
+    FilterStartDateGTE:
+      description: 'Returns objects greater or equal the specified date.
+
+
+        This can be combined with start_date_lte parameter to receive only the selected
+        period.
+
+        '
+      in: query
+      name: start_date_gte
+      required: false
+      schema:
+        format: date-time
+        type: string
+    FilterStartDateLTE:
+      description: 'Returns objects less or equal the specified date.
+
+
+        This can be combined with start_date_gte parameter to receive only the selected
+        period.
+
+        '
+      in: query
+      name: start_date_lte
+      required: false
+      schema:
+        format: date-time
+        type: string
+    FilterState:
+      description: The value can be repeated to retrieve multiple matching values
+        (OR condition).
+      in: query
+      name: state
+      required: false
+      schema:
+        items:
+          type: string
+        type: array
+    FilterTags:
+      description: 'List of tags to filter results.
+
+
+        *New in version 2.2.0*
+
+        '
+      in: query
+      name: tags
+      schema:
+        items:
+          type: string
+        type: array
+    FilterTaskID:
+      description: Returns objects matched by the Task ID.
+      in: query
+      name: task_id
+      required: false
+      schema:
+        type: string
+    FilterUpdatedAtGTE:
+      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*
+
+        '
+      in: query
+      name: updated_at_gte
+      required: false
+      schema:
+        format: date-time
+        type: string
+    FilterUpdatedAtLTE:
+      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*
+
+        '
+      in: query
+      name: updated_at_lte
+      required: false
+      schema:
+        format: date-time
+        type: string
+    FilterXcomKey:
+      description: Only filter the XCom records which have the provided key.
+      in: query
+      name: xcom_key
+      required: false
+      schema:
+        type: string
+    FullContent:
+      description: 'A full content will be returned.
+
+        By default, only the first fragment will be returned.
+
+        '
+      in: query
+      name: full_content
+      required: false
+      schema:
+        type: boolean
+    ImportErrorID:
+      description: The import error ID.
+      in: path
+      name: import_error_id
+      required: true
+      schema:
+        type: integer
+    MapIndex:
+      description: The map index.
+      in: path
+      name: map_index
+      required: true
+      schema:
+        type: integer
+    OnlyActive:
+      description: 'Only filter active DAGs.
+
+
+        *New in version 2.1.1*
+
+        '
+      in: query
+      name: only_active
+      required: false
+      schema:
+        default: true
+        type: boolean
+    OrderBy:
+      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*
+
+        '
+      in: query
+      name: order_by
+      required: false
+      schema:
+        type: string
+    Owner:
+      description: The owner's name of event log.
+      in: query
+      name: owner
+      required: false
+      schema:
+        type: string
+    PageLimit:
+      description: The numbers of items to return.
+      in: query
+      name: limit
+      required: false
+      schema:
+        default: 100
+        type: integer
+    PageOffset:
+      description: The number of items to skip before starting to collect the result
+        set.
+      in: query
+      name: offset
+      required: false
+      schema:
+        minimum: 0
+        type: integer
+    Paused:
+      description: 'Only filter paused/unpaused DAGs. If absent or null, it returns
+        paused and unpaused DAGs.
+
+
+        *New in version 2.6.0*
+
+        '
+      in: query
+      name: paused
+      required: false
+      schema:
+        type: boolean
+    PoolName:
+      description: The pool name.
+      in: path
+      name: pool_name
+      required: true
+      schema:
+        type: string
+    RoleName:
+      description: The role name
+      in: path
+      name: role_name
+      required: true
+      schema:
+        type: string
+    TaskID:
+      description: The task ID.
+      in: path
+      name: task_id
+      required: true
+      schema:
+        type: string
+    TaskTryNumber:
+      description: The task try number.
+      in: path
+      name: task_try_number
+      required: true
+      schema:
+        type: integer
+    UpdateMask:
+      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.
+
+        '
+      explode: false
+      in: query
+      name: update_mask
+      schema:
+        items:
+          type: string
+        type: array
+      style: form
+    Username:
+      description: 'The username of the user.
+
+
+        *New in version 2.1.0*
+
+        '
+      in: path
+      name: username
+      required: true
+      schema:
+        type: string
+    VariableKey:
+      description: The variable Key.
+      in: path
+      name: variable_key
+      required: true
+      schema:
+        format: path
+        type: string
+    XComKey:
+      description: The XCom key.
+      in: path
+      name: xcom_key
+      required: true
+      schema:
+        type: string
+  requestBodies: {}
+  responses:
+    AlreadyExists:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/Error'
+      description: An existing resource conflicts with the request.
+    BadRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/Error'
+      description: Client specified an invalid argument.
+    MethodNotAllowed:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/Error'
+      description: Request method is known by the server but is not supported by the
+        target resource.
+    NotAcceptable:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/Error'
+      description: A specified Accept header is not allowed.
+    NotFound:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/Error'
+      description: A specified resource is not found.
+    PermissionDenied:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/Error'
+      description: Client does not have sufficient permission.
+    Unauthenticated:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/Error'
+      description: Request not authenticated due to missing, invalid, authentication
+        info.
+    Unknown:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/Error'
+      description: Unknown server error.
+  schemas:
+    Action:
+      description: 'An action Item.
+
+
+        *New in version 2.1.0*
+
+        '
+      properties:
+        name:
+          description: The name of the permission "action"
+          nullable: false
+          type: string
+      type: object
+    ActionCollection:
+      allOf:
+      - properties:
+          actions:
+            items:
+              $ref: '#/components/schemas/Action'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'A collection of actions.
+
+
+        *New in version 2.1.0*
+
+        '
+      type: object
+    ActionResource:
+      description: 'The Action-Resource item.
+
+
+        *New in version 2.1.0*
+
+        '
+      properties:
+        action:
+          $ref: '#/components/schemas/Action'
+          description: The permission action
+          type: object
+        resource:
+          $ref: '#/components/schemas/Resource'
+          description: The permission resource
+          type: object
+      type: object
+    BasicDAGRun:
+      properties:
+        dag_id:
+          readOnly: true
+          type: string
+        data_interval_end:
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        data_interval_start:
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        end_date:
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        logical_date:
+          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
+          type: string
+        run_id:
+          description: 'Run ID.
+
+            '
+          type: string
+        start_date:
+          description: 'The start time. The time when DAG run was actually created.
+
+
+            *Changed in version 2.1.3*&#58; Field becomes nullable.
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        state:
+          $ref: '#/components/schemas/DagState'
+      type: object
+    ClassReference:
+      description: Class reference
+      properties:
+        class_name:
+          readOnly: true
+          type: string
+        module_path:
+          readOnly: true
+          type: string
+      type: object
+    ClearDagRun:
+      properties:
+        dry_run:
+          default: true
+          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
+      type: object
+    ClearTaskInstances:
+      properties:
+        dag_run_id:
+          description: The DagRun ID for this task instance
+          nullable: true
+          type: string
+        dry_run:
+          default: true
+          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
+        end_date:
+          description: The maximum execution date to clear.
+          format: datetime
+          type: string
+        include_downstream:
+          default: false
+          description: If set to true, downstream tasks are also affected.
+          type: boolean
+        include_future:
+          default: false
+          description: If set to True, also tasks from future DAG Runs are affected.
+          type: boolean
+        include_parentdag:
+          description: Clear tasks in the parent dag of the subdag.
+          type: boolean
+        include_past:
+          default: false
+          description: If set to True, also tasks from past DAG Runs are affected.
+          type: boolean
+        include_subdags:
+          description: Clear tasks in subdags and clear external tasks indicated by
+            ExternalTaskMarker.
+          type: boolean
+        include_upstream:
+          default: false
+          description: If set to true, upstream tasks are also affected.
+          type: boolean
+        only_failed:
+          default: true
+          description: Only clear failed tasks.
+          type: boolean
+        only_running:
+          default: false
+          description: Only clear running tasks.
+          type: boolean
+        reset_dag_runs:
+          description: Set state of DAG runs to RUNNING.
+          type: boolean
+        start_date:
+          description: The minimum execution date to clear.
+          format: datetime
+          type: string
+        task_ids:
+          description: 'A list of task ids to clear.
+
+
+            *New in version 2.1.0*
+
+            '
+          items:
+            type: string
+          minItems: 1
+          type: array
+      type: object
+    CollectionInfo:
+      description: Metadata about collection.
+      properties:
+        total_entries:
+          description: 'Count of total objects in the current result set before pagination
+            parameters
+
+            (limit, offset) are applied.
+
+            '
+          type: integer
+      type: object
+    Color:
+      description: Color in hexadecimal notation.
+      pattern: ^#[a-fA-F0-9]{3,6}$
+      type: string
+    Config:
+      description: The configuration.
+      properties:
+        sections:
+          items:
+            $ref: '#/components/schemas/ConfigSection'
+          type: array
+      type: object
+    ConfigOption:
+      description: The option of configuration.
+      properties:
+        key:
+          readOnly: true
+          type: string
+        value:
+          readOnly: true
+          type: string
+      type: object
+    ConfigSection:
+      description: The section of configuration.
+      properties:
+        name:
+          readOnly: true
+          type: string
+        options:
+          items:
+            $ref: '#/components/schemas/ConfigOption'
+          type: array
+      type: object
+    Connection:
+      allOf:
+      - $ref: '#/components/schemas/ConnectionCollectionItem'
+      - properties:
+          extra:
+            description: Other values that cannot be put into another field, e.g.
+              RSA keys.
+            nullable: true
+            type: string
+          password:
+            description: Password of the connection.
+            format: password
+            type: string
+            writeOnly: true
+        type: object
+      description: Full representation of the connection.
+    ConnectionCollection:
+      allOf:
+      - properties:
+          connections:
+            items:
+              $ref: '#/components/schemas/ConnectionCollectionItem'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of connections.
+
+
+        *Changed in version 2.1.0*&#58; ''total_entries'' field is added.
+
+        '
+      type: object
+    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.
+
+        '
+      properties:
+        conn_type:
+          description: The connection type.
+          type: string
+        connection_id:
+          description: The connection ID.
+          type: string
+        description:
+          description: The description of the connection.
+          nullable: true
+          type: string
+        host:
+          description: Host of the connection.
+          nullable: true
+          type: string
+        login:
+          description: Login of the connection.
+          nullable: true
+          type: string
+        port:
+          description: Port of the connection.
+          nullable: true
+          type: integer
+        schema:
+          description: Schema of the connection.
+          nullable: true
+          type: string
+      type: object
+    ConnectionTest:
+      description: 'Connection test results.
+
+
+        *New in version 2.2.0*
+
+        '
+      properties:
+        message:
+          description: The success or failure message of the request.
+          type: string
+        status:
+          description: The status of the request.
+          type: boolean
+      type: object
+    CronExpression:
+      description: Cron expression
+      nullable: true
+      properties:
+        __type:
+          type: string
+        value:
+          type: string
+      required:
+      - __type
+      - value
+      type: object
+    DAG:
+      description: DAG
+      properties:
+        dag_id:
+          description: The ID of the DAG.
+          readOnly: true
+          type: string
+        default_view:
+          description: 'Default view of the DAG inside the webserver
+
+
+            *New in version 2.3.0*
+
+            '
+          nullable: true
+          readOnly: true
+          type: string
+        description:
+          description: 'User-provided DAG description, which can consist of several
+            sentences or paragraphs that describe DAG contents.
+
+            '
+          nullable: true
+          readOnly: true
+          type: string
+        file_token:
+          description: 'The key containing the encrypted path to the file. Encryption
+            and decryption take place only on the server. This prevents the client
+            from reading an non-DAG file. This also ensures API extensibility, because
+            the format of encrypted data may change.
+
+            '
+          readOnly: true
+          type: string
+        fileloc:
+          description: The absolute path to the file.
+          readOnly: true
+          type: string
+        has_import_errors:
+          description: 'Whether the DAG has import errors
+
+
+            *New in version 2.3.0*
+
+            '
+          nullable: true
+          readOnly: true
+          type: boolean
+        has_task_concurrency_limits:
+          description: 'Whether the DAG has task concurrency limits
+
+
+            *New in version 2.3.0*
+
+            '
+          nullable: true
+          readOnly: true
+          type: boolean
+        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*&#58; Field is read-only.
+
+            '
+          nullable: true
+          readOnly: true
+          type: boolean
+        is_paused:
+          description: Whether the DAG is paused.
+          nullable: true
+          type: boolean
+        is_subdag:
+          description: Whether the DAG is SubDAG.
+          readOnly: true
+          type: boolean
+        last_expired:
+          description: 'Time when the DAG last received a refresh signal
+
+            (e.g. the DAG''s "refresh" button was clicked in the web UI)
+
+
+            *New in version 2.3.0*
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        last_parsed_time:
+          description: 'The last time the DAG was parsed.
+
+
+            *New in version 2.3.0*
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        last_pickled:
+          description: 'The last time the DAG was pickled.
+
+
+            *New in version 2.3.0*
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        max_active_runs:
+          description: 'Maximum number of active DAG runs for the DAG
+
+
+            *New in version 2.3.0*
+
+            '
+          nullable: true
+          readOnly: true
+          type: integer
+        max_active_tasks:
+          description: 'Maximum number of active tasks that can be run on the DAG
+
+
+            *New in version 2.3.0*
+
+            '
+          nullable: true
+          readOnly: true
+          type: integer
+        next_dagrun:
+          description: 'The logical date of the next dag run.
+
+
+            *New in version 2.3.0*
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        next_dagrun_create_after:
+          description: 'Earliest time at which this ``next_dagrun`` can be created.
+
+
+            *New in version 2.3.0*
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        next_dagrun_data_interval_end:
+          description: 'The end of the interval of the next dag run.
+
+
+            *New in version 2.3.0*
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        next_dagrun_data_interval_start:
+          description: 'The start of the interval of the next dag run.
+
+
+            *New in version 2.3.0*
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        owners:
+          items:
+            type: string
+          readOnly: true
+          type: array
+        pickle_id:
+          description: 'Foreign key to the latest pickle_id
+
+
+            *New in version 2.3.0*
+
+            '
+          nullable: true
+          readOnly: true
+          type: string
+        root_dag_id:
+          description: If the DAG is SubDAG then it is the top level DAG identifier.
+            Otherwise, null.
+          nullable: true
+          readOnly: true
+          type: string
+        schedule_interval:
+          $ref: '#/components/schemas/ScheduleInterval'
+        scheduler_lock:
+          description: 'Whether (one of) the scheduler is scheduling this DAG at the
+            moment
+
+
+            *New in version 2.3.0*
+
+            '
+          nullable: true
+          readOnly: true
+          type: boolean
+        tags:
+          description: List of tags.
+          items:
+            $ref: '#/components/schemas/Tag'
+          nullable: true
+          readOnly: true
+          type: array
+        timetable_description:
+          description: 'Timetable/Schedule Interval description.
+
+
+            *New in version 2.3.0*
+
+            '
+          nullable: true
+          readOnly: true
+          type: string
+      type: object
+    DAGCollection:
+      allOf:
+      - properties:
+          dags:
+            items:
+              $ref: '#/components/schemas/DAG'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of DAGs.
+
+
+        *Changed in version 2.1.0*&#58; ''total_entries'' field is added.
+
+        '
+      type: object
+    DAGDetail:
+      allOf:
+      - $ref: '#/components/schemas/DAG'
+      - properties:
+          catchup:
+            readOnly: true
+            type: boolean
+          concurrency:
+            readOnly: true
+            type: number
+          dag_run_timeout:
+            $ref: '#/components/schemas/TimeDelta'
+          default_view:
+            nullable: true
+            readOnly: true
+            type: string
+          doc_md:
+            nullable: true
+            readOnly: true
+            type: string
+          end_date:
+            description: 'The DAG''s end date.
+
+
+              *New in version 2.3.0*.
+
+              '
+            format: date-time
+            nullable: true
+            readOnly: true
+            type: string
+          is_paused_upon_creation:
+            description: 'Whether the DAG is paused upon creation.
+
+
+              *New in version 2.3.0*
+
+              '
+            nullable: true
+            readOnly: true
+            type: boolean
+          last_parsed:
+            description: 'The last time the DAG was parsed.
+
+
+              *New in version 2.3.0*
+
+              '
+            format: date-time
+            nullable: true
+            readOnly: true
+            type: string
+          orientation:
+            readOnly: true
+            type: string
+          params:
+            description: 'User-specified DAG params.
+
+
+              *New in version 2.0.1*
+
+              '
+            readOnly: true
+            type: object
+          render_template_as_native_obj:
+            description: 'Whether to render templates as native Python objects.
+
+
+              *New in version 2.3.0*
+
+              '
+            nullable: true
+            readOnly: true
+            type: boolean
+          start_date:
+            description: 'The DAG''s start date.
+
+
+              *Changed in version 2.0.1*&#58; Field becomes nullable.
+
+              '
+            format: date-time
+            nullable: true
+            readOnly: true
+            type: string
+          template_search_path:
+            description: 'The template search path.
+
+
+              *New in version 2.3.0*
+
+              '
+            items:
+              type: string
+            nullable: true
+            type: array
+          timezone:
+            $ref: '#/components/schemas/Timezone'
+        type: object
+      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)
+
+        '
+    DAGRun:
+      properties:
+        conf:
+          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.
+
+            '
+          type: object
+        dag_id:
+          readOnly: true
+          type: string
+        dag_run_id:
+          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.
+
+            '
+          nullable: true
+          type: string
+        data_interval_end:
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        data_interval_start:
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        end_date:
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        execution_date:
+          deprecated: 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*&#58; Field becomes nullable.
+
+
+            *Deprecated since version 2.2.0*&#58; Use ''logical_date'' instead.
+
+            '
+          format: date-time
+          nullable: true
+          type: string
+        external_trigger:
+          readOnly: true
+          type: boolean
+        last_scheduling_decision:
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        logical_date:
+          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
+          nullable: true
+          type: string
+        note:
+          description: 'Contains manually entered notes by the user about the DagRun.
+
+
+            *New in version 2.5.0*
+
+            '
+          nullable: true
+          type: string
+        run_type:
+          enum:
+          - backfill
+          - manual
+          - scheduled
+          - dataset_triggered
+          readOnly: true
+          type: string
+        start_date:
+          description: 'The start time. The time when DAG run was actually created.
+
+
+            *Changed in version 2.1.3*&#58; Field becomes nullable.
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        state:
+          $ref: '#/components/schemas/DagState'
+      type: object
+    DAGRunCollection:
+      allOf:
+      - properties:
+          dag_runs:
+            items:
+              $ref: '#/components/schemas/DAGRun'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of DAG runs.
+
+
+        *Changed in version 2.1.0*&#58; ''total_entries'' field is added.
+
+        '
+      type: object
+    DagProcessorStatus:
+      description: 'The status and the latest dag processor heartbeat.
+
+
+        *New in version 2.6.3*
+
+        '
+      properties:
+        latest_dag_processor_heartbeat:
+          description: The time the dag processor last did a heartbeat.
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+        status:
+          $ref: '#/components/schemas/HealthStatus'
+      type: object
+    DagScheduleDatasetReference:
+      description: 'A datasets reference to a downstream DAG.
+
+
+        *New in version 2.4.0*
+
+        '
+      properties:
+        created_at:
+          description: The dataset reference creation time
+          nullable: false
+          type: string
+        dag_id:
+          description: The DAG ID that depends on the dataset.
+          nullable: true
+          type: string
+        updated_at:
+          description: The dataset reference update time
+          nullable: false
+          type: string
+      type: object
+    DagState:
+      description: 'DAG State.
+
+
+        *Changed in version 2.1.3*&#58; ''queued'' is added as a possible value.
+
+        '
+      enum:
+      - queued
+      - running
+      - success
+      - failed
+      readOnly: true
+      type: string
+    DagWarning:
+      properties:
+        dag_id:
+          description: The dag_id.
+          readOnly: true
+          type: string
+        message:
+          description: The message for the dag warning.
+          readOnly: true
+          type: string
+        timestamp:
+          description: The time when this warning was logged.
+          format: datetime
+          readOnly: true
+          type: string
+        warning_type:
+          description: The warning type for the dag warning.
+          readOnly: true
+          type: string
+      type: object
+    DagWarningCollection:
+      allOf:
+      - properties:
+          import_errors:
+            items:
+              $ref: '#/components/schemas/DagWarning'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of DAG warnings.
+
+        '
+      type: object
+    Dataset:
+      description: 'A dataset item.
+
+
+        *New in version 2.4.0*
+
+        '
+      properties:
+        consuming_dags:
+          items:
+            $ref: '#/components/schemas/DagScheduleDatasetReference'
+          type: array
+        created_at:
+          description: The dataset creation time
+          nullable: false
+          type: string
+        extra:
+          description: The dataset extra
+          nullable: true
+          type: object
+        id:
+          description: The dataset id
+          type: integer
+        producing_tasks:
+          items:
+            $ref: '#/components/schemas/TaskOutletDatasetReference'
+          type: array
+        updated_at:
+          description: The dataset update time
+          nullable: false
+          type: string
+        uri:
+          description: The dataset uri
+          nullable: false
+          type: string
+      type: object
+    DatasetCollection:
+      allOf:
+      - properties:
+          datasets:
+            items:
+              $ref: '#/components/schemas/Dataset'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'A collection of datasets.
+
+
+        *New in version 2.4.0*
+
+        '
+      type: object
+    DatasetEvent:
+      description: 'A dataset event.
+
+
+        *New in version 2.4.0*
+
+        '
+      properties:
+        created_dagruns:
+          items:
+            $ref: '#/components/schemas/BasicDAGRun'
+          type: array
+        dataset_id:
+          description: The dataset id
+          type: integer
+        dataset_uri:
+          description: The URI of the dataset
+          nullable: false
+          type: string
+        extra:
+          description: The dataset event extra
+          nullable: true
+          type: object
+        source_dag_id:
+          description: The DAG ID that updated the dataset.
+          nullable: true
+          type: string
+        source_map_index:
+          description: The task map index that updated the dataset.
+          nullable: true
+          type: integer
+        source_run_id:
+          description: The DAG run ID that updated the dataset.
+          nullable: true
+          type: string
+        source_task_id:
+          description: The task ID that updated the dataset.
+          nullable: true
+          type: string
+        timestamp:
+          description: The dataset event creation time
+          nullable: false
+          type: string
+      type: object
+    DatasetEventCollection:
+      allOf:
+      - properties:
+          dataset_events:
+            items:
+              $ref: '#/components/schemas/DatasetEvent'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'A collection of dataset events.
+
+
+        *New in version 2.4.0*
+
+        '
+      type: object
+    Error:
+      description: '[RFC7807](https://tools.ietf.org/html/rfc7807) compliant response.
+
+        '
+      properties:
+        detail:
+          description: A human-readable explanation specific to this occurrence of
+            the problem.
+          type: string
+        instance:
+          description: 'A URI reference that identifies the specific occurrence of
+            the problem. It may or may
+
+            not yield further information if dereferenced.
+
+            '
+          type: string
+        status:
+          description: The HTTP status code generated by the API server for this occurrence
+            of the problem.
+          type: number
+        title:
+          description: A short, human-readable summary of the problem type.
+          type: string
+        type:
+          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.
+
+            '
+          type: string
+      required:
+      - type
+      - title
+      - status
+      type: object
+    EventLog:
+      description: Log of user operations via CLI or Web UI.
+      properties:
+        dag_id:
+          description: The DAG ID
+          nullable: true
+          readOnly: true
+          type: string
+        event:
+          description: A key describing the type of event.
+          readOnly: true
+          type: string
+        event_log_id:
+          description: The event log ID
+          readOnly: true
+          type: integer
+        execution_date:
+          description: 'When the event was dispatched for an object having execution_date,
+            the value of this field.
+
+            '
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        extra:
+          description: 'Other information that was not included in the other fields,
+            e.g. the complete CLI command.
+
+            '
+          nullable: true
+          readOnly: true
+          type: string
+        owner:
+          description: Name of the user who triggered these events a.
+          readOnly: true
+          type: string
+        task_id:
+          description: The DAG ID
+          nullable: true
+          readOnly: true
+          type: string
+        when:
+          description: The time when these events happened.
+          format: date-time
+          readOnly: true
+          type: string
+      type: object
+    EventLogCollection:
+      allOf:
+      - properties:
+          event_logs:
+            items:
+              $ref: '#/components/schemas/EventLog'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of event logs.
+
+
+        *Changed in version 2.1.0*&#58; ''total_entries'' field is added.
+
+        '
+      type: object
+    ExtraLink:
+      description: Additional links containing additional information about the task.
+      properties:
+        class_ref:
+          $ref: '#/components/schemas/ClassReference'
+        href:
+          readOnly: true
+          type: string
+        name:
+          readOnly: true
+          type: string
+      type: object
+    ExtraLinkCollection:
+      description: The collection of extra links.
+      properties:
+        extra_links:
+          items:
+            $ref: '#/components/schemas/ExtraLink'
+          type: array
+      type: object
+    HealthInfo:
+      description: Instance status information.
+      properties:
+        dag_processor:
+          $ref: '#/components/schemas/DagProcessorStatus'
+        metadatabase:
+          $ref: '#/components/schemas/MetadatabaseStatus'
+        scheduler:
+          $ref: '#/components/schemas/SchedulerStatus'
+        triggerer:
+          $ref: '#/components/schemas/TriggererStatus'
+      type: object
+    HealthStatus:
+      description: Health status
+      enum:
+      - healthy
+      - unhealthy
+      nullable: true
+      type: string
+    ImportError:
+      properties:
+        filename:
+          description: The filename
+          readOnly: true
+          type: string
+        import_error_id:
+          description: The import error ID.
+          readOnly: true
+          type: integer
+        stack_trace:
+          description: The full stackstrace..
+          readOnly: true
+          type: string
+        timestamp:
+          description: The time when this error was created.
+          format: datetime
+          readOnly: true
+          type: string
+      type: object
+    ImportErrorCollection:
+      allOf:
+      - properties:
+          import_errors:
+            items:
+              $ref: '#/components/schemas/ImportError'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of import errors.
+
+
+        *Changed in version 2.1.0*&#58; ''total_entries'' field is added.
+
+        '
+      type: object
+    Job:
+      nullable: true
+      properties:
+        dag_id:
+          nullable: true
+          type: string
+        end_date:
+          format: datetime
+          nullable: true
+          type: string
+        executor_class:
+          nullable: true
+          type: string
+        hostname:
+          nullable: true
+          type: string
+        id:
+          type: integer
+        job_type:
+          nullable: true
+          type: string
+        latest_heartbeat:
+          format: datetime
+          nullable: true
+          type: string
+        start_date:
+          format: datetime
+          nullable: true
+          type: string
+        state:
+          nullable: true
+          type: string
+        unixname:
+          nullable: true
+          type: string
+      type: object
+    ListDagRunsForm:
+      properties:
+        dag_ids:
+          description: 'Return objects with specific DAG IDs.
+
+            The value can be repeated to retrieve multiple matching values (OR condition).'
+          items:
+            type: string
+          type: array
+        end_date_gte:
+          description: 'Returns objects greater or equal the specified date.
+
+
+            This can be combined with end_date_lte parameter to receive only the selected
+            period.
+
+            '
+          format: date-time
+          type: string
+        end_date_lte:
+          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.
+
+            '
+          format: date-time
+          type: string
+        execution_date_gte:
+          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.
+
+            '
+          format: date-time
+          type: string
+        execution_date_lte:
+          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.
+
+            '
+          format: date-time
+          type: string
+        order_by:
+          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*
+
+            '
+          type: string
+        page_limit:
+          default: 100
+          description: The numbers of items to return.
+          minimum: 1
+          type: integer
+        page_offset:
+          description: The number of items to skip before starting to collect the
+            result set.
+          minimum: 0
+          type: integer
+        start_date_gte:
+          description: 'Returns objects greater or equal the specified date.
+
+
+            This can be combined with start_date_lte key to receive only the selected
+            period.
+
+            '
+          format: date-time
+          type: string
+        start_date_lte:
+          description: 'Returns objects less or equal the specified date.
+
+
+            This can be combined with start_date_gte parameter to receive only the
+            selected period
+
+            '
+          format: date-time
+          type: string
+        states:
+          description: 'Return objects with specific states.
+
+            The value can be repeated to retrieve multiple matching values (OR condition).'
+          items:
+            type: string
+          type: array
+      type: object
+    ListTaskInstanceForm:
+      properties:
+        dag_ids:
+          description: 'Return objects with specific DAG IDs.
+
+            The value can be repeated to retrieve multiple matching values (OR condition).'
+          items:
+            type: string
+          type: array
+        dag_run_ids:
+          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*'
+          items:
+            type: string
+          type: array
+        duration_gte:
+          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.
+
+            '
+          type: number
+        duration_lte:
+          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.
+
+            '
+          type: number
+        end_date_gte:
+          description: 'Returns objects greater or equal the specified date.
+
+
+            This can be combined with start_date_lte parameter to receive only the
+            selected period.
+
+            '
+          format: date-time
+          type: string
+        end_date_lte:
+          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.
+
+            '
+          format: date-time
+          type: string
+        execution_date_gte:
+          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.
+
+            '
+          format: date-time
+          type: string
+        execution_date_lte:
+          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.
+
+            '
+          format: date-time
+          type: string
+        pool:
+          description: The value can be repeated to retrieve multiple matching values
+            (OR condition).
+          items:
+            type: string
+          type: array
+        queue:
+          description: The value can be repeated to retrieve multiple matching values
+            (OR condition).
+          items:
+            type: string
+          type: array
+        start_date_gte:
+          description: 'Returns objects greater or equal the specified date.
+
+
+            This can be combined with start_date_lte parameter to receive only the
+            selected period.
+
+            '
+          format: date-time
+          type: string
+        start_date_lte:
+          description: 'Returns objects less or equal the specified date.
+
+
+            This can be combined with start_date_gte parameter to receive only the
+            selected period.
+
+            '
+          format: date-time
+          type: string
+        state:
+          description: The value can be repeated to retrieve multiple matching values
+            (OR condition).
+          items:
+            $ref: '#/components/schemas/TaskState'
+          type: array
+        task_ids:
+          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*'
+          items:
+            type: string
+          type: array
+      type: object
+    MetadatabaseStatus:
+      description: The status of the metadatabase.
+      properties:
+        status:
+          $ref: '#/components/schemas/HealthStatus'
+      type: object
+    PluginCollection:
+      allOf:
+      - properties:
+          plugins:
+            items:
+              $ref: '#/components/schemas/PluginCollectionItem'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'A collection of plugin.
+
+
+        *New in version 2.1.0*
+
+        '
+      type: object
+    PluginCollectionItem:
+      description: 'A plugin Item.
+
+
+        *New in version 2.1.0*
+
+        '
+      properties:
+        appbuilder_menu_items:
+          description: The Flask Appbuilder menu items
+          items:
+            nullable: true
+            type: object
+          type: array
+        appbuilder_views:
+          description: The appuilder views
+          items:
+            nullable: true
+            type: object
+          type: array
+        executors:
+          description: The plugin executors
+          items:
+            nullable: true
+            type: string
+          type: array
+        flask_blueprints:
+          description: The flask blueprints
+          items:
+            nullable: true
+            type: string
+          type: array
+        global_operator_extra_links:
+          description: The global operator extra links
+          items:
+            nullable: true
+            type: string
+          type: array
+        hooks:
+          description: The plugin hooks
+          items:
+            nullable: true
+            type: string
+          type: array
+        listeners:
+          description: The plugin listeners
+          items:
+            type: string
+          type: array
+        macros:
+          description: The plugin macros
+          items:
+            nullable: true
+            type: string
+          type: array
+        name:
+          description: The name of the plugin
+          type: string
+        operator_extra_links:
+          description: Operator extra links
+          items:
+            nullable: true
+            type: string
+          type: array
+        source:
+          description: The plugin source
+          nullable: true
+          type: string
+        ti_deps:
+          description: The plugin task instance dependencies
+          items:
+            type: string
+          type: array
+        timetables:
+          description: The plugin timetables
+          items:
+            type: string
+          type: array
+      type: object
+    Pool:
+      description: The pool
+      properties:
+        deferred_slots:
+          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*
+
+            '
+          readOnly: true
+          type: integer
+        description:
+          description: 'The description of the pool.
+
+
+            *New in version 2.3.0*
+
+            '
+          nullable: true
+          type: string
+        include_deferred:
+          description: 'If set to true, deferred tasks are considered when calculating
+            open pool slots.
+
+
+            *New in version 2.7.0*
+
+            '
+          type: boolean
+        name:
+          description: The name of pool.
+          type: string
+        occupied_slots:
+          description: The number of slots used by running/queued tasks at the moment.
+            May include deferred tasks if 'include_deferred' is set to true.
+          readOnly: true
+          type: integer
+        open_slots:
+          description: The number of free slots at the moment.
+          readOnly: true
+          type: integer
+        queued_slots:
+          description: The number of slots used by queued tasks at the moment.
+          readOnly: true
+          type: integer
+        running_slots:
+          description: The number of slots used by running tasks at the moment.
+          readOnly: true
+          type: integer
+        scheduled_slots:
+          description: The number of slots used by scheduled tasks at the moment.
+          readOnly: true
+          type: integer
+        slots:
+          description: 'The maximum number of slots that can be assigned to tasks.
+            One job may occupy one or more slots.
+
+            '
+          type: integer
+      type: object
+    PoolCollection:
+      allOf:
+      - properties:
+          pools:
+            items:
+              $ref: '#/components/schemas/Pool'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of pools.
+
+
+        *Changed in version 2.1.0*&#58; ''total_entries'' field is added.
+
+        '
+      type: object
+    Provider:
+      description: 'The provider
+
+
+        *New in version 2.1.0*
+
+        '
+      properties:
+        description:
+          description: The description of the provider.
+          type: string
+        package_name:
+          description: The package name of the provider.
+          type: string
+        version:
+          description: The version of the provider.
+          type: string
+      type: object
+    ProviderCollection:
+      description: 'Collection of providers.
+
+
+        *New in version 2.1.0*
+
+        '
+      properties:
+        providers:
+          items:
+            $ref: '#/components/schemas/Provider'
+          type: array
+      type: object
+    RelativeDelta:
+      description: Relative delta
+      properties:
+        __type:
+          type: string
+        day:
+          type: integer
+        days:
+          type: integer
+        hour:
+          type: integer
+        hours:
+          type: integer
+        leapdays:
+          type: integer
+        microsecond:
+          type: integer
+        microseconds:
+          type: integer
+        minute:
+          type: integer
+        minutes:
+          type: integer
+        month:
+          type: integer
+        months:
+          type: integer
+        second:
+          type: integer
+        seconds:
+          type: integer
+        year:
+          type: integer
+        years:
+          type: integer
+      required:
+      - __type
+      - years
+      - months
+      - days
+      - leapdays
+      - hours
+      - minutes
+      - seconds
+      - microseconds
+      - year
+      - month
+      - day
+      - hour
+      - minute
+      - second
+      - microsecond
+      type: object
+    Resource:
+      description: 'A resource on which permissions are granted.
+
+
+        *New in version 2.1.0*
+
+        '
+      properties:
+        name:
+          description: The name of the resource
+          nullable: false
+          type: string
+      type: object
+    Role:
+      description: 'a role item.
+
+
+        *New in version 2.1.0*
+
+        '
+      properties:
+        actions:
+          items:
+            $ref: '#/components/schemas/ActionResource'
+          type: array
+        name:
+          description: 'The name of the role
+
+
+            *Changed in version 2.3.0*&#58; A minimum character length requirement
+            (''minLength'') is added.
+
+            '
+          minLength: 1
+          type: string
+      type: object
+    RoleCollection:
+      allOf:
+      - properties:
+          roles:
+            items:
+              $ref: '#/components/schemas/Role'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'A collection of roles.
+
+
+        *New in version 2.1.0*
+
+        '
+      type: object
+    SLAMiss:
+      nullable: true
+      properties:
+        dag_id:
+          description: The DAG ID.
+          type: string
+        description:
+          nullable: true
+          type: string
+        email_sent:
+          type: boolean
+        execution_date:
+          format: datetime
+          type: string
+        notification_sent:
+          type: boolean
+        task_id:
+          description: The task ID.
+          readOnly: true
+          type: string
+        timestamp:
+          format: datetime
+          type: string
+      type: object
+    ScheduleInterval:
+      anyOf:
+      - $ref: '#/components/schemas/TimeDelta'
+      - $ref: '#/components/schemas/RelativeDelta'
+      - $ref: '#/components/schemas/CronExpression'
+      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.
+
+        '
+      discriminator:
+        propertyName: __type
+      nullable: true
+      readOnly: true
+    SchedulerStatus:
+      description: The status and the latest scheduler heartbeat.
+      properties:
+        latest_scheduler_heartbeat:
+          description: The time the scheduler last did a heartbeat.
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+        status:
+          $ref: '#/components/schemas/HealthStatus'
+      type: object
+    SetDagRunNote:
+      properties:
+        note:
+          description: Custom notes left by users for this Dag Run.
+          type: string
+      type: object
+    SetTaskInstanceNote:
+      properties:
+        note:
+          description: The custom note to set for this Task Instance.
+          type: string
+      required:
+      - note
+      type: object
+    Tag:
+      description: Tag
+      properties:
+        name:
+          type: string
+      type: object
+    Task:
+      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'
+        depends_on_past:
+          readOnly: true
+          type: boolean
+        downstream_task_ids:
+          items:
+            type: string
+          readOnly: true
+          type: array
+        end_date:
+          format: date-time
+          nullable: true
+          readOnly: true
+          type: string
+        execution_timeout:
+          $ref: '#/components/schemas/TimeDelta'
+        extra_links:
+          items:
+            properties:
+              class_ref:
+                $ref: '#/components/schemas/ClassReference'
+            type: object
+          readOnly: true
+          type: array
+        is_mapped:
+          readOnly: true
+          type: boolean
+        owner:
+          readOnly: true
+          type: string
+        pool:
+          readOnly: true
+          type: string
+        pool_slots:
+          readOnly: true
+          type: number
+        priority_weight:
+          readOnly: true
+          type: number
+        queue:
+          nullable: true
+          readOnly: true
+          type: string
+        retries:
+          readOnly: true
+          type: number
+        retry_delay:
+          $ref: '#/components/schemas/TimeDelta'
+        retry_exponential_backoff:
+          readOnly: true
+          type: boolean
+        start_date:
+          format: date-time
+          readOnly: true
+          type: string
+        sub_dag:
+          $ref: '#/components/schemas/DAG'
+        task_id:
+          readOnly: true
+          type: string
+        template_fields:
+          items:
+            type: string
+          readOnly: true
+          type: array
+        trigger_rule:
+          $ref: '#/components/schemas/TriggerRule'
+        ui_color:
+          $ref: '#/components/schemas/Color'
+        ui_fgcolor:
+          $ref: '#/components/schemas/Color'
+        wait_for_downstream:
+          readOnly: true
+          type: boolean
+        weight_rule:
+          $ref: '#/components/schemas/WeightRule'
+      type: object
+    TaskCollection:
+      description: Collection of tasks.
+      properties:
+        tasks:
+          items:
+            $ref: '#/components/schemas/Task'
+          type: array
+      type: object
+    TaskInstance:
+      properties:
+        dag_id:
+          type: string
+        dag_run_id:
+          description: 'The DagRun ID for this task instance
+
+
+            *New in version 2.3.0*
+
+            '
+          type: string
+        duration:
+          nullable: true
+          type: number
+        end_date:
+          format: datetime
+          nullable: true
+          type: string
+        execution_date:
+          format: datetime
+          type: string
+        executor_config:
+          type: string
+        hostname:
+          type: string
+        map_index:
+          type: integer
+        max_tries:
+          type: integer
+        note:
+          description: 'Contains manually entered notes by the user about the TaskInstance.
+
+
+            *New in version 2.5.0*
+
+            '
+          nullable: true
+          type: string
+        operator:
+          description: '*Changed in version 2.1.1*&#58; Field becomes nullable.
+
+            '
+          nullable: true
+          type: string
+        pid:
+          nullable: true
+          type: integer
+        pool:
+          type: string
+        pool_slots:
+          type: integer
+        priority_weight:
+          nullable: true
+          type: integer
+        queue:
+          nullable: true
+          type: string
+        queued_when:
+          nullable: true
+          type: string
+        rendered_fields:
+          description: 'JSON object describing rendered fields.
+
+
+            *New in version 2.3.0*
+
+            '
+          type: object
+        sla_miss:
+          $ref: '#/components/schemas/SLAMiss'
+        start_date:
+          format: datetime
+          nullable: true
+          type: string
+        state:
+          $ref: '#/components/schemas/TaskState'
+        task_id:
+          type: string
+        trigger:
+          $ref: '#/components/schemas/Trigger'
+        triggerer_job:
+          $ref: '#/components/schemas/Job'
+        try_number:
+          type: integer
+        unixname:
+          type: string
+      type: object
+    TaskInstanceCollection:
+      allOf:
+      - properties:
+          task_instances:
+            items:
+              $ref: '#/components/schemas/TaskInstance'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of task instances.
+
+
+        *Changed in version 2.1.0*&#58; ''total_entries'' field is added.
+
+        '
+      type: object
+    TaskInstanceReference:
+      properties:
+        dag_id:
+          description: The DAG ID.
+          readOnly: true
+          type: string
+        dag_run_id:
+          description: The DAG run ID.
+          readOnly: true
+          type: string
+        execution_date:
+          format: datetime
+          readOnly: true
+          type: string
+        task_id:
+          description: The task ID.
+          readOnly: true
+          type: string
+      type: object
+    TaskInstanceReferenceCollection:
+      properties:
+        task_instances:
+          items:
+            $ref: '#/components/schemas/TaskInstanceReference'
+          type: array
+      type: object
+    TaskOutletDatasetReference:
+      description: 'A datasets reference to an upstream task.
+
+
+        *New in version 2.4.0*
+
+        '
+      properties:
+        created_at:
+          description: The dataset creation time
+          nullable: false
+          type: string
+        dag_id:
+          description: The DAG ID that updates the dataset.
+          nullable: true
+          type: string
+        task_id:
+          description: The task ID that updates the dataset.
+          nullable: true
+          type: string
+        updated_at:
+          description: The dataset update time
+          nullable: false
+          type: string
+      type: object
+    TaskState:
+      description: 'Task state.
+
+
+        *Changed in version 2.0.2*&#58; ''removed'' is added as a possible value.
+
+
+        *Changed in version 2.2.0*&#58; ''deferred'' is added as a possible value.
+
+
+        *Changed in version 2.4.0*&#58; ''sensing'' state has been removed.
+
+        *Changed in version 2.4.2*&#58; ''restarting'' is added as a possible value
+
+
+        *Changed in version 2.7.0*&#58; Field becomes nullable and null primitive
+        is added as a possible value.
+
+        *Changed in version 2.7.0*&#58; ''none'' state is deprecated in favor of null.
+
+        '
+      enum:
+      - null
+      - success
+      - running
+      - failed
+      - upstream_failed
+      - skipped
+      - up_for_retry
+      - up_for_reschedule
+      - queued
+      - none
+      - scheduled
+      - deferred
+      - removed
+      - restarting
+      nullable: true
+      type: string
+    TimeDelta:
+      description: Time delta
+      nullable: true
+      properties:
+        __type:
+          type: string
+        days:
+          type: integer
+        microseconds:
+          type: integer
+        seconds:
+          type: integer
+      required:
+      - __type
+      - days
+      - seconds
+      - microseconds
+      type: object
+    Timezone:
+      type: string
+    Trigger:
+      nullable: true
+      properties:
+        classpath:
+          type: string
+        created_date:
+          format: datetime
+          type: string
+        id:
+          type: integer
+        kwargs:
+          type: string
+        triggerer_id:
+          nullable: true
+          type: integer
+      type: object
+    TriggerRule:
+      description: 'Trigger rule.
+
+
+        *Changed in version 2.2.0*&#58; ''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*&#58; ''all_skipped'' is added as a possible value.
+
+
+        *Changed in version 2.5.0*&#58; ''one_done'' is added as a possible value.
+
+
+        *Changed in version 2.7.0*&#58; ''all_done_setup_success'' is added as a possible
+        value.
+
+        '
+      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
+      type: string
+    TriggererStatus:
+      description: 'The status and the latest triggerer heartbeat.
+
+
+        *New in version 2.6.2*
+
+        '
+      properties:
+        latest_triggerer_heartbeat:
+          description: The time the triggerer last did a heartbeat.
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+        status:
+          $ref: '#/components/schemas/HealthStatus'
+      type: object
+    UpdateDagRunState:
+      description: 'Modify the state of a DAG run.
+
+
+        *New in version 2.2.0*
+
+        '
+      properties:
+        state:
+          description: The state to set this DagRun
+          enum:
+          - success
+          - failed
+          - queued
+          type: string
+      type: object
+    UpdateTaskInstance:
+      properties:
+        dry_run:
+          default: true
+          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
+        new_state:
+          $ref: '#/components/schemas/UpdateTaskState'
+      type: object
+    UpdateTaskInstancesState:
+      properties:
+        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
+        dry_run:
+          default: true
+          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
+        execution_date:
+          description: The execution date. Either set this or dag_run_id but not both.
+          format: datetime
+          type: string
+        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
+        include_upstream:
+          description: If set to true, upstream tasks are also affected.
+          type: boolean
+        new_state:
+          $ref: '#/components/schemas/UpdateTaskState'
+        task_id:
+          description: The task ID.
+          type: string
+      type: object
+    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.
+
+        '
+      enum:
+      - success
+      - failed
+      - skipped
+      type: string
+    User:
+      allOf:
+      - $ref: '#/components/schemas/UserCollectionItem'
+      - properties:
+          password:
+            type: string
+            writeOnly: true
+        type: object
+      description: 'A user object with sensitive data.
+
+
+        *New in version 2.1.0*
+
+        '
+      type: object
+    UserCollection:
+      allOf:
+      - properties:
+          users:
+            items:
+              $ref: '#/components/schemas/UserCollectionItem'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of users.
+
+
+        *New in version 2.1.0*
+
+        '
+      type: object
+    UserCollectionItem:
+      description: 'A user object.
+
+
+        *New in version 2.1.0*
+
+        '
+      properties:
+        active:
+          description: Whether the user is active
+          nullable: true
+          readOnly: true
+          type: boolean
+        changed_on:
+          description: The date user was changed
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+        created_on:
+          description: The date user was created
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+        email:
+          description: 'The user''s email.
+
+
+            *Changed in version 2.2.0*&#58; A minimum character length requirement
+            (''minLength'') is added.
+
+            '
+          minLength: 1
+          type: string
+        failed_login_count:
+          description: The number of times the login failed
+          nullable: true
+          readOnly: true
+          type: integer
+        first_name:
+          description: 'The user''s first name.
+
+
+            *Changed in version 2.4.0*&#58; The requirement for this to be non-empty
+            was removed.
+
+            '
+          type: string
+        last_login:
+          description: The last user login
+          format: datetime
+          nullable: true
+          readOnly: true
+          type: string
+        last_name:
+          description: 'The user''s last name.
+
+
+            *Changed in version 2.4.0*&#58; The requirement for this to be non-empty
+            was removed.
+
+            '
+          type: string
+        login_count:
+          description: The login count
+          nullable: true
+          readOnly: true
+          type: integer
+        roles:
+          description: 'User roles.
+
+
+            *Changed in version 2.2.0*&#58; Field is no longer read-only.
+
+            '
+          items:
+            nullable: true
+            properties:
+              name:
+                type: string
+            type: object
+          type: array
+        username:
+          description: 'The username.
+
+
+            *Changed in version 2.2.0*&#58; A minimum character length requirement
+            (''minLength'') is added.
+
+            '
+          minLength: 1
+          type: string
+      type: object
+    Variable:
+      allOf:
+      - $ref: '#/components/schemas/VariableCollectionItem'
+      - properties:
+          value:
+            type: string
+        type: object
+      description: Full representation of Variable
+    VariableCollection:
+      allOf:
+      - properties:
+          variables:
+            items:
+              $ref: '#/components/schemas/VariableCollectionItem'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of variables.
+
+
+        *Changed in version 2.1.0*&#58; ''total_entries'' field is added.
+
+        '
+      type: object
+    VariableCollectionItem:
+      description: 'XCom entry collection item.
+
+        The value field are only available when retrieving a single object due to
+        the sensitivity of this data.'
+      properties:
+        description:
+          description: 'The description of the variable.
+
+
+            *New in version 2.4.0*
+
+            '
+          nullable: true
+          type: string
+        key:
+          type: string
+      type: object
+    VersionInfo:
+      description: Version information.
+      properties:
+        git_version:
+          description: The git version (including git commit hash)
+          nullable: true
+          type: string
+        version:
+          description: The version of Airflow
+          type: string
+      type: object
+    WeightRule:
+      description: Weight rule.
+      enum:
+      - downstream
+      - upstream
+      - absolute
+      type: string
+    XCom:
+      allOf:
+      - $ref: '#/components/schemas/XComCollectionItem'
+      - properties:
+          value:
+            description: The value
+            type: string
+        type: object
+      description: Full representations of XCom entry.
+    XComCollection:
+      allOf:
+      - properties:
+          xcom_entries:
+            items:
+              $ref: '#/components/schemas/XComCollectionItem'
+            type: array
+        type: object
+      - $ref: '#/components/schemas/CollectionInfo'
+      description: 'Collection of XCom entries.
+
+
+        *Changed in version 2.1.0*&#58; ''total_entries'' field is added.
+
+        '
+      type: object
+    XComCollectionItem:
+      description: 'XCom entry collection item.
+
+
+        The value field is only available when reading a single object due to the
+        size of the value.
+
+        '
+      properties:
+        dag_id:
+          type: string
+        execution_date:
+          format: datetime
+          type: string
+        key:
+          type: string
+        map_index:
+          type: integer
+        task_id:
+          type: string
+        timestamp:
+          format: datetime
+          type: string
+      type: object
+  securitySchemes:
+    Basic:
+      scheme: basic
+      type: http
+    GoogleOpenId:
+      openIdConnectUrl: https://accounts.google.com/.well-known/openid-configuration
+      type: openIdConnect
+    Kerberos:
+      scheme: negotiate
+      type: http
+externalDocs:
+  url: https://airflow.apache.org/docs/apache-airflow/stable/
+info:
+  contact:
+    email: dev@airflow.apache.org
+    name: Apache Software Foundation
+    url: https://airflow.apache.org
+  description: "# Overview\n\nTo facilitate management, Apache Airflow supports a\
+    \ range of REST API endpoints across its\nobjects.\nThis section provides an overview\
+    \ of the API design, methods, and supported use cases.\n\nMost of the endpoints\
+    \ accept `JSON` as input and return `JSON` responses.\nThis means that you must\
+    \ usually add the following headers to your request:\n```\nContent-type: application/json\n\
+    Accept: application/json\n```\n\n## Resources\n\nThe term `resource` refers to\
+    \ a single type of object in the Airflow metadata. An API is broken up by its\n\
+    endpoint's corresponding resource.\nThe name of a resource is typically plural\
+    \ and expressed in camelCase. Example: `dagRuns`.\n\nResource names are used as\
+    \ part of endpoint URLs, as well as in API parameters and responses.\n\n## CRUD\
+    \ Operations\n\nThe platform supports **C**reate, **R**ead, **U**pdate, and **D**elete\
+    \ operations on most resources.\nYou can review the standards for these operations\
+    \ and their standard parameters below.\n\nSome endpoints have special behavior\
+    \ as exceptions.\n\n### Create\n\nTo create a resource, you typically submit an\
+    \ HTTP `POST` request with the resource's required metadata\nin the request body.\n\
+    The response returns a `201 Created` response code upon success with the resource's\
+    \ metadata, including\nits internal `id`, in the response body.\n\n### Read\n\n\
+    The HTTP `GET` request can be used to read a resource or to list a number of resources.\n\
+    \nA resource's `id` can be submitted in the request parameters to read a specific\
+    \ resource.\nThe response usually returns a `200 OK` response code upon success,\
+    \ with the resource's metadata in\nthe response body.\n\nIf a `GET` request does\
+    \ not include a specific resource `id`, it is treated as a list request.\nThe\
+    \ response usually returns a `200 OK` response code upon success, with an object\
+    \ containing a list\nof resources' metadata in the response body.\n\nWhen reading\
+    \ resources, some common query parameters are usually available. e.g.:\n```\n\
+    v1/connections?limit=25&offset=25\n```\n\n|Query Parameter|Type|Description|\n\
+    |---------------|----|-----------|\n|limit|integer|Maximum number of objects to\
+    \ fetch. Usually 25 by default|\n|offset|integer|Offset after which to start returning\
+    \ objects. For use with limit query parameter.|\n\n### Update\n\nUpdating a resource\
+    \ requires the resource `id`, and is typically done using an HTTP `PATCH` request,\n\
+    with the fields to modify in the request body.\nThe response usually returns a\
+    \ `200 OK` response code upon success, with information about the modified\nresource\
+    \ in the response body.\n\n### Delete\n\nDeleting a resource requires the resource\
+    \ `id` and is typically executed via an HTTP `DELETE` request.\nThe response usually\
+    \ returns a `204 No Content` response code upon success.\n\n## Conventions\n\n\
+    - Resource names are plural and expressed in camelCase.\n- Names are consistent\
+    \ between URL parameter name and field name.\n\n- Field names are in snake_case.\n\
+    ```json\n{\n    \"description\": \"string\",\n    \"name\": \"string\",\n    \"\
+    occupied_slots\": 0,\n    \"open_slots\": 0\n    \"queued_slots\": 0,\n    \"\
+    running_slots\": 0,\n    \"scheduled_slots\": 0,\n    \"slots\": 0,\n}\n```\n\n\
+    ### Update Mask\n\nUpdate mask is available as a query parameter in patch endpoints.\
+    \ It is used to notify the\nAPI which fields you want to update. Using `update_mask`\
+    \ makes it easier to update objects\nby helping the server know which fields to\
+    \ update in an object instead of updating all fields.\nThe update request ignores\
+    \ any fields that aren't specified in the field mask, leaving them with\ntheir\
+    \ current values.\n\nExample:\n```\n  resource = request.get('/resource/my-id').json()\n\
+    \  resource['my_field'] = 'new-value'\n  request.patch('/resource/my-id?update_mask=my_field',\
+    \ data=json.dumps(resource))\n```\n\n## Versioning and Endpoint Lifecycle\n\n\
+    - API versioning is not synchronized to specific releases of the Apache Airflow.\n\
+    - APIs are designed to be backward compatible.\n- Any changes to the API will\
+    \ first go through a deprecation phase.\n\n# Trying the API\n\nYou can use a third\
+    \ party client, such as [curl](https://curl.haxx.se/), [HTTPie](https://httpie.org/),\n\
+    [Postman](https://www.postman.com/) or [the Insomnia rest client](https://insomnia.rest/)\
+    \ to test\nthe Apache Airflow API.\n\nNote that you will need to pass credentials\
+    \ data.\n\nFor e.g., here is how to pause a DAG with [curl](https://curl.haxx.se/),\
+    \ when basic authorization is used:\n```bash\ncurl -X PATCH 'https://example.com/api/v1/dags/{dag_id}?update_mask=is_paused'\
+    \ \\\n-H 'Content-Type: application/json' \\\n--user \"username:password\" \\\n\
+    -d '{\n    \"is_paused\": true\n}'\n```\n\nUsing a graphical tool such as [Postman](https://www.postman.com/)\
+    \ or [Insomnia](https://insomnia.rest/),\nit is possible to import the API specifications\
+    \ directly:\n\n1. Download the API specification by clicking the **Download**\
+    \ button at the top of this document\n2. Import the JSON specification in the\
+    \ graphical tool of your choice.\n  - In *Postman*, you can click the **import**\
+    \ button at the top\n  - With *Insomnia*, you can just drag-and-drop the file\
+    \ on the UI\n\nNote that with *Postman*, you can also generate code snippets by\
+    \ selecting a request and clicking on\nthe **Code** button.\n\n## Enabling CORS\n\
+    \n[Cross-origin resource sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)\n\
+    is a browser security feature that restricts HTTP requests that are\ninitiated\
+    \ from scripts running in the browser.\n\nFor details on enabling/configuring\
+    \ CORS, see\n[Enabling CORS](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html).\n\
+    \n# Authentication\n\nTo be able to meet the requirements of many organizations,\
+    \ Airflow supports many authentication methods,\nand it is even possible to add\
+    \ your own method.\n\nIf you want to check which auth backend is currently set,\
+    \ you can use\n`airflow config get-value api auth_backends` command as in the\
+    \ example below.\n```bash\n$ airflow config get-value api auth_backends\nairflow.api.auth.backend.basic_auth\n\
+    ```\nThe default is to deny all requests.\n\nFor details on configuring the authentication,\
+    \ see\n[API Authorization](https://airflow.apache.org/docs/apache-airflow/stable/security/api.html).\n\
+    \n# Errors\n\nWe follow the error response format proposed in [RFC 7807](https://tools.ietf.org/html/rfc7807)\n\
+    also known as Problem Details for HTTP APIs. As with our normal API responses,\n\
+    your client must be prepared to gracefully handle additional members of the response.\n\
+    \n## Unauthenticated\n\nThis indicates that the request has not been applied because\
+    \ it lacks valid authentication\ncredentials for the target resource. Please check\
+    \ that you have valid credentials.\n\n## PermissionDenied\n\nThis response means\
+    \ that the server understood the request but refuses to authorize\nit because\
+    \ it lacks sufficient rights to the resource. It happens when you do not have\
+    \ the\nnecessary permission to execute the action you performed. You need to get\
+    \ the appropriate\npermissions in other to resolve this error.\n\n## BadRequest\n\
+    \nThis response means that the server cannot or will not process the request due\
+    \ to something\nthat is perceived to be a client error (e.g., malformed request\
+    \ syntax, invalid request message\nframing, or deceptive request routing). To\
+    \ resolve this, please ensure that your syntax is correct.\n\n## NotFound\n\n\
+    This client error response indicates that the server cannot find the requested\
+    \ resource.\n\n## MethodNotAllowed\n\nIndicates that the request method is known\
+    \ by the server but is not supported by the target resource.\n\n## NotAcceptable\n\
+    \nThe target resource does not have a current representation that would be acceptable\
+    \ to the user\nagent, according to the proactive negotiation header fields received\
+    \ in the request, and the\nserver is unwilling to supply a default representation.\n\
+    \n## AlreadyExists\n\nThe request could not be completed due to a conflict with\
+    \ the current state of the target\nresource, e.g. the resource it tries to create\
+    \ already exists.\n\n## Unknown\n\nThis means that the server encountered an unexpected\
+    \ condition that prevented it from\nfulfilling the request.\n"
+  license:
+    name: Apache 2.0
+    url: http://www.apache.org/licenses/LICENSE-2.0.html
+  title: Airflow API (Stable)
+  version: 2.9.0.dev0
+openapi: 3.0.3
+paths:
+  /config:
+    get:
+      operationId: get_config
+      parameters:
+      - description: If given, only return config of this section.
+        in: query
+        name: section
+        required: false
+        schema:
+          type: string
+      responses:
+        '200':
+          content:
+            application/json:
+              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
+              schema:
+                $ref: '#/components/schemas/Config'
+            text/plain:
+              example: '[core]
+
+                dags_folder = /home/user/my-dags-folder
+
+                [smtp]
+
+                smtp_host = localhost
+
+                smtp_mail_from =  airflow@example.com
+
+                '
+              schema:
+                type: string
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get current configuration
+      tags:
+      - Config
+      x-openapi-router-controller: airflow.api_connexion.endpoints.config_endpoint
+  /config/section/{section}/option/{option}:
+    get:
+      operationId: get_value
+      parameters:
+      - in: path
+        name: section
+        required: true
+        schema:
+          type: string
+      - in: path
+        name: option
+        required: true
+        schema:
+          type: string
+      responses:
+        '200':
+          content:
+            application/json:
+              example:
+                sections:
+                - name: core
+                  options:
+                  - key: dags_folder
+                    value: /home/user/my-dags-folder
+              schema:
+                $ref: '#/components/schemas/Config'
+            text/plain:
+              example: '[core]
+
+                dags_folder = /home/user/my-dags-folder
+
+                '
+              schema:
+                type: string
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a option from configuration
+      tags:
+      - Config
+      x-openapi-router-controller: airflow.api_connexion.endpoints.config_endpoint
+  /connections:
+    get:
+      operationId: get_connections
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/OrderBy'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ConnectionCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List connections
+      tags:
+      - Connection
+      x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
+    post:
+      operationId: post_connection
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Connection'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Connection'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: Create a connection
+      tags:
+      - Connection
+      x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
+  /connections/test:
+    post:
+      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*
+
+        '
+      operationId: test_connection
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Connection'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ConnectionTest'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Test a connection
+      tags:
+      - Connection
+      x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
+  /connections/{connection_id}:
+    delete:
+      operationId: delete_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'
+      summary: Delete a connection
+      tags:
+      - Connection
+      x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
+    get:
+      operationId: get_connection
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Connection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a connection
+      tags:
+      - Connection
+      x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
+    parameters:
+    - $ref: '#/components/parameters/ConnectionID'
+    patch:
+      operationId: patch_connection
+      parameters:
+      - $ref: '#/components/parameters/UpdateMask'
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Connection'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Connection'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Update a connection
+      tags:
+      - Connection
+      x-openapi-router-controller: airflow.api_connexion.endpoints.connection_endpoint
+  /dagSources/{file_token}:
+    get:
+      description: 'Get a source code using file token.
+
+        '
+      operationId: get_dag_source
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                properties:
+                  content:
+                    type: string
+                type: object
+            plain/text:
+              schema:
+                type: string
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+      summary: Get a source code
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_source_endpoint
+    parameters:
+    - $ref: '#/components/parameters/FileToken'
+  /dagWarnings:
+    get:
+      operationId: get_dag_warnings
+      parameters:
+      - description: If set, only return DAG warnings with this dag_id.
+        in: query
+        name: dag_id
+        required: false
+        schema:
+          type: string
+      - description: If set, only return DAG warnings with this type.
+        in: query
+        name: warning_type
+        required: false
+        schema:
+          type: string
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/OrderBy'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DagWarningCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List dag warnings
+      tags:
+      - DagWarning
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_warning_endpoint
+  /dags:
+    get:
+      description: 'List DAGs in the database.
+
+        `dag_id_pattern` can be set to match dags of a specific pattern
+
+        '
+      operationId: get_dags
+      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'
+      - description: 'If set, only return DAGs with dag_ids matching this pattern.
+
+          '
+        in: query
+        name: dag_id_pattern
+        required: false
+        schema:
+          type: string
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAGCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+      summary: List DAGs
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint
+    patch:
+      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*
+
+        '
+      operationId: patch_dags
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/FilterTags'
+      - $ref: '#/components/parameters/UpdateMask'
+      - $ref: '#/components/parameters/OnlyActive'
+      - description: 'If set, only update DAGs with dag_ids matching this pattern.
+
+          '
+        in: query
+        name: dag_id_pattern
+        required: true
+        schema:
+          type: string
+      requestBody:
+        content:
+          application/json:
+            example:
+              is_paused: true
+            schema:
+              $ref: '#/components/schemas/DAG'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAGCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Update DAGs
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint
+  /dags/{dag_id}:
+    delete:
+      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*
+
+        '
+      operationId: delete_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'
+      summary: Delete a DAG
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint
+    get:
+      description: 'Presents only information available in database (DAGModel).
+
+        If you need detailed information, consider using GET /dags/{dag_id}/details.
+
+        '
+      operationId: get_dag
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAG'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get basic information about a DAG
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    patch:
+      operationId: patch_dag
+      parameters:
+      - $ref: '#/components/parameters/UpdateMask'
+      requestBody:
+        content:
+          application/json:
+            example:
+              is_paused: true
+            schema:
+              $ref: '#/components/schemas/DAG'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAG'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Update a DAG
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint
+  /dags/{dag_id}/clearTaskInstances:
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    post:
+      description: 'Clears a set of task instances associated with the DAG for a specified
+        date range.
+
+        '
+      operationId: post_clear_task_instances
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/ClearTaskInstances'
+        description: Parameters of action
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstanceReferenceCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Clear a set of task instances
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+  /dags/{dag_id}/dagRuns:
+    get:
+      description: 'This endpoint allows specifying `~` as the dag_id to retrieve
+        DAG runs for all DAGs.
+
+        '
+      operationId: get_dag_runs
+      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'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAGRunCollection'
+          description: List of DAG runs.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+      summary: List DAG runs
+      tags:
+      - DAGRun
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    post:
+      description: 'This will initiate a dagrun. If DAG is paused then dagrun state
+        will remain queued, and the task won''t run.
+
+        '
+      operationId: post_dag_run
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/DAGRun'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAGRun'
+          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'
+      summary: Trigger a new DAG run.
+      tags:
+      - DAGRun
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
+  /dags/{dag_id}/dagRuns/{dag_run_id}:
+    delete:
+      operationId: delete_dag_run
+      responses:
+        '204':
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Delete a DAG run
+      tags:
+      - DAGRun
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
+    get:
+      operationId: get_dag_run
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAGRun'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a DAG run
+      tags:
+      - DAGRun
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+    patch:
+      description: 'Modify a DAG run.
+
+
+        *New in version 2.2.0*
+
+        '
+      operationId: update_dag_run_state
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/UpdateDagRunState'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAGRun'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Modify a DAG run
+      tags:
+      - DAGRun
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
+  /dags/{dag_id}/dagRuns/{dag_run_id}/clear:
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+    post:
+      description: 'Clear a DAG run.
+
+
+        *New in version 2.4.0*
+
+        '
+      operationId: clear_dag_run
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/ClearDagRun'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                anyOf:
+                - $ref: '#/components/schemas/DAGRun'
+                - $ref: '#/components/schemas/TaskInstanceCollection'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Clear a DAG run
+      tags:
+      - DAGRun
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
+  /dags/{dag_id}/dagRuns/{dag_run_id}/setNote:
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+    patch:
+      description: 'Update the manual user note of a DagRun.
+
+
+        *New in version 2.5.0*
+
+        '
+      operationId: set_dag_run_note
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/SetDagRunNote'
+        description: Parameters of set DagRun note.
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAGRun'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Update the DagRun note.
+      tags:
+      - DAGRun
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
+  /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances:
+    get:
+      description: 'This endpoint allows specifying `~` as the dag_id, dag_run_id
+        to retrieve DAG runs for all DAGs and DAG runs.
+
+        '
+      operationId: get_task_instances
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstanceCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List task instances
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+    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'
+  /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}:
+    get:
+      operationId: get_task_instance
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstance'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a task instance
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+    - $ref: '#/components/parameters/TaskID'
+    patch:
+      description: 'Updates the state for single task instance.
+
+        *New in version 2.5.0*
+
+        '
+      operationId: patch_task_instance
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/UpdateTaskInstance'
+        description: Parameters of action
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstanceReference'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Updates the state of a task instance
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+  /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/links:
+    get:
+      description: 'List extra links for task instance.
+
+        '
+      operationId: get_extra_links
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ExtraLinkCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: List extra links
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.extra_link_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+    - $ref: '#/components/parameters/TaskID'
+  /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/listMapped:
+    get:
+      description: 'Get details of all mapped task instances.
+
+
+        *New in version 2.3.0*
+
+        '
+      operationId: get_mapped_task_instances
+      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':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstanceCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: List mapped task instances
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+    - $ref: '#/components/parameters/TaskID'
+  /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number}:
+    get:
+      description: "Get logs for a specific task instance and its try number.\nTo\
+        \ get log from specific character position, following way of using\nURLSafeSerializer\
+        \ can be used.\n\nExample:\n```\nfrom itsdangerous.url_safe import URLSafeSerializer\n\
+        \nrequest_url = f\"api/v1/dags/{DAG_ID}/dagRuns/{RUN_ID}/taskInstances/{TASK_ID}/logs/1\"\
+        \nkey = app.config[\"SECRET_KEY\"]\nserializer = URLSafeSerializer(key)\n\
+        token = serializer.dumps({\"log_pos\": 10000})\n\nresponse = self.client.get(\n\
+        \    request_url,\n    query_string={\"token\": token},\n    headers={\"Accept\"\
+        : \"text/plain\"},\n    environ_overrides={\"REMOTE_USER\": \"test\"},\n)\n\
+        continuation_token = response.json[\"continuation_token\"]\n    metadata =\
+        \ URLSafeSerializer(key).loads(continuation_token)\n    log_pos = metadata[\"\
+        log_pos\"]\n    end_of_log = metadata[\"end_of_log\"]\n```\nIf log_pos is\
+        \ passed as 10000 like the above example, it renders the logs starting\nfrom\
+        \ char position 10000 to last (not the end as the logs may be tailing behind\
+        \ in\nrunning state). This way pagination can be done with metadata as part\
+        \ of the token.\n"
+      operationId: get_log
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                properties:
+                  content:
+                    type: string
+                  continuation_token:
+                    type: string
+                type: object
+            text/plain:
+              schema:
+                type: string
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get logs
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.log_endpoint
+    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'
+  /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:
+      description: 'Update the manual user note of a non-mapped Task Instance.
+
+
+        *New in version 2.5.0*
+
+        '
+      operationId: set_task_instance_note
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/SetTaskInstanceNote'
+        description: Parameters of set Task Instance note.
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstance'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Update the TaskInstance note.
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+  /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries:
+    get:
+      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.
+      operationId: get_xcom_entries
+      parameters:
+      - $ref: '#/components/parameters/FilterMapIndex'
+      - $ref: '#/components/parameters/FilterXcomKey'
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/XComCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List XCom entries
+      tags:
+      - XCom
+      x-openapi-router-controller: airflow.api_connexion.endpoints.xcom_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+    - $ref: '#/components/parameters/TaskID'
+  /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key}:
+    get:
+      operationId: get_xcom_entry
+      parameters:
+      - $ref: '#/components/parameters/FilterMapIndex'
+      - 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*
+
+          '
+        in: query
+        name: deserialize
+        required: false
+        schema:
+          default: false
+          type: boolean
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/XCom'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get an XCom entry
+      tags:
+      - XCom
+      x-openapi-router-controller: airflow.api_connexion.endpoints.xcom_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+    - $ref: '#/components/parameters/TaskID'
+    - $ref: '#/components/parameters/XComKey'
+  /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}:
+    get:
+      description: 'Get details of a mapped task instance.
+
+
+        *New in version 2.3.0*
+
+        '
+      operationId: get_mapped_task_instance
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstance'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a mapped task instance
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+    - $ref: '#/components/parameters/TaskID'
+    - $ref: '#/components/parameters/MapIndex'
+    patch:
+      description: 'Updates the state for single mapped task instance.
+
+        *New in version 2.5.0*
+
+        '
+      operationId: patch_mapped_task_instance
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/UpdateTaskInstance'
+        description: Parameters of action
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstanceReference'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Updates the state of a mapped task instance
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+  /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:
+      description: 'Update the manual user note of a mapped Task Instance.
+
+
+        *New in version 2.5.0*
+
+        '
+      operationId: set_mapped_task_instance_note
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/SetTaskInstanceNote'
+        description: Parameters of set Task Instance note.
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstance'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Update the TaskInstance note.
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+  /dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents:
+    get:
+      description: 'Get datasets for a dag run.
+
+
+        *New in version 2.4.0*
+
+        '
+      operationId: get_upstream_dataset_events
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DatasetEventCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get dataset events for a DAG run
+      tags:
+      - DAGRun
+      - Dataset
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/DAGRunID'
+  /dags/{dag_id}/details:
+    get:
+      description: 'The response contains many DAG attributes, so the response can
+        be large. If possible, consider using GET /dags/{dag_id}.
+
+        '
+      operationId: get_dag_details
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAGDetail'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a simplified representation of DAG
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+  /dags/{dag_id}/tasks:
+    get:
+      operationId: get_tasks
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get tasks for DAG
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/OrderBy'
+  /dags/{dag_id}/tasks/{task_id}:
+    get:
+      operationId: get_task
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Task'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get simplified representation of a task
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    - $ref: '#/components/parameters/TaskID'
+  /dags/{dag_id}/updateTaskInstancesState:
+    parameters:
+    - $ref: '#/components/parameters/DAGID'
+    post:
+      description: 'Updates the state for multiple task instances simultaneously.
+
+        '
+      operationId: post_set_task_instances_state
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/UpdateTaskInstancesState'
+        description: Parameters of action
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstanceReferenceCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Set a state of task instances
+      tags:
+      - DAG
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+  /dags/~/dagRuns/list:
+    post:
+      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.
+
+        '
+      operationId: get_dag_runs_batch
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/ListDagRunsForm'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DAGRunCollection'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List DAG runs (batch)
+      tags:
+      - DAGRun
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dag_run_endpoint
+  /dags/~/dagRuns/~/taskInstances/list:
+    post:
+      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.
+
+        '
+      operationId: get_task_instances_batch
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/ListTaskInstanceForm'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TaskInstanceCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: List task instances (batch)
+      tags:
+      - TaskInstance
+      x-openapi-router-controller: airflow.api_connexion.endpoints.task_instance_endpoint
+  /datasets:
+    get:
+      operationId: get_datasets
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/OrderBy'
+      - description: 'If set, only return datasets with uris matching this pattern.
+
+          '
+        in: query
+        name: uri_pattern
+        required: false
+        schema:
+          type: string
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DatasetCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List datasets
+      tags:
+      - Dataset
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint
+  /datasets/events:
+    get:
+      description: Get dataset events
+      operationId: get_dataset_events
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DatasetEventCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get dataset events
+      tags:
+      - Dataset
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint
+    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'
+  /datasets/{uri}:
+    get:
+      description: Get a dataset by uri.
+      operationId: get_dataset
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Dataset'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a dataset
+      tags:
+      - Dataset
+      x-openapi-router-controller: airflow.api_connexion.endpoints.dataset_endpoint
+    parameters:
+    - $ref: '#/components/parameters/DatasetURI'
+  /eventLogs:
+    get:
+      description: List log entries from event log.
+      operationId: get_event_logs
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/OrderBy'
+      - $ref: '#/components/parameters/FilterDAGID'
+      - $ref: '#/components/parameters/FilterTaskID'
+      - $ref: '#/components/parameters/Event'
+      - $ref: '#/components/parameters/Owner'
+      - $ref: '#/components/parameters/Before'
+      - $ref: '#/components/parameters/After'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/EventLogCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List log entries
+      tags:
+      - EventLog
+      x-openapi-router-controller: airflow.api_connexion.endpoints.event_log_endpoint
+  /eventLogs/{event_log_id}:
+    get:
+      operationId: get_event_log
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/EventLog'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a log entry
+      tags:
+      - EventLog
+      x-openapi-router-controller: airflow.api_connexion.endpoints.event_log_endpoint
+    parameters:
+    - $ref: '#/components/parameters/EventLogID'
+  /health:
+    get:
+      description: 'Get the status of Airflow''s metadatabase, triggerer and scheduler.
+        It includes info about
+
+        metadatabase and last heartbeat of scheduler and triggerer.
+
+        '
+      operationId: get_health
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HealthInfo'
+          description: Success.
+      summary: Get instance status
+      tags:
+      - Monitoring
+      x-openapi-router-controller: airflow.api_connexion.endpoints.health_endpoint
+  /importErrors:
+    get:
+      operationId: get_import_errors
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/OrderBy'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ImportErrorCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List import errors
+      tags:
+      - ImportError
+      x-openapi-router-controller: airflow.api_connexion.endpoints.import_error_endpoint
+  /importErrors/{import_error_id}:
+    get:
+      operationId: get_import_error
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ImportError'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get an import error
+      tags:
+      - ImportError
+      x-openapi-router-controller: airflow.api_connexion.endpoints.import_error_endpoint
+    parameters:
+    - $ref: '#/components/parameters/ImportErrorID'
+  /permissions:
+    get:
+      deprecated: true
+      description: 'Get a list of permissions.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: get_permissions
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ActionCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List permissions
+      tags:
+      - Permission
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+  /plugins:
+    get:
+      description: 'Get a list of loaded plugins.
+
+
+        *New in version 2.1.0*
+
+        '
+      operationId: get_plugins
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PluginCollection'
+          description: Success
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a list of loaded plugins
+      tags:
+      - Plugin
+      x-openapi-router-controller: airflow.api_connexion.endpoints.plugin_endpoint
+  /pools:
+    get:
+      operationId: get_pools
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/OrderBy'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PoolCollection'
+          description: List of pools.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List pools
+      tags:
+      - Pool
+      x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint
+    post:
+      operationId: post_pool
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Pool'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Pool'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: Create a pool
+      tags:
+      - Pool
+      x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint
+  /pools/{pool_name}:
+    delete:
+      operationId: delete_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'
+      summary: Delete a pool
+      tags:
+      - Pool
+      x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint
+    get:
+      operationId: get_pool
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Pool'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a pool
+      tags:
+      - Pool
+      x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint
+    parameters:
+    - $ref: '#/components/parameters/PoolName'
+    patch:
+      operationId: patch_pool
+      parameters:
+      - $ref: '#/components/parameters/UpdateMask'
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Pool'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Pool'
+          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'
+      summary: Update a pool
+      tags:
+      - Pool
+      x-openapi-router-controller: airflow.api_connexion.endpoints.pool_endpoint
+  /providers:
+    get:
+      description: 'Get a list of providers.
+
+
+        *New in version 2.1.0*
+
+        '
+      operationId: get_providers
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                allOf:
+                - $ref: '#/components/schemas/ProviderCollection'
+                - $ref: '#/components/schemas/CollectionInfo'
+          description: List of providers.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List providers
+      tags:
+      - Provider
+      x-openapi-router-controller: airflow.api_connexion.endpoints.provider_endpoint
+  /roles:
+    get:
+      deprecated: true
+      description: 'Get a list of roles.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: get_roles
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/OrderBy'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/RoleCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List roles
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+    post:
+      deprecated: true
+      description: 'Create a new role.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: post_role
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Role'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Role'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: Create a role
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+  /roles/{role_name}:
+    delete:
+      deprecated: true
+      description: 'Delete a role.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: delete_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'
+      summary: Delete a role
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+    get:
+      deprecated: true
+      description: 'Get a role.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: get_role
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Role'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a role
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+    parameters:
+    - $ref: '#/components/parameters/RoleName'
+    patch:
+      deprecated: true
+      description: 'Update a role.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: patch_role
+      parameters:
+      - $ref: '#/components/parameters/UpdateMask'
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Role'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Role'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Update a role
+      tags:
+      - Role
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+  /users:
+    get:
+      deprecated: true
+      description: 'Get a list of users.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: get_users
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/OrderBy'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/UserCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List users
+      tags:
+      - User
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+    post:
+      deprecated: true
+      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.*
+
+        '
+      operationId: post_user
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/User'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/User'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '409':
+          $ref: '#/components/responses/AlreadyExists'
+      summary: Create a user
+      tags:
+      - User
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+  /users/{username}:
+    delete:
+      deprecated: true
+      description: 'Delete a user with a specific username.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: delete_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'
+      summary: Delete a user
+      tags:
+      - User
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+    get:
+      deprecated: true
+      description: 'Get a user with a specific username.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: get_user
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/UserCollectionItem'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a user
+      tags:
+      - User
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+    parameters:
+    - $ref: '#/components/parameters/Username'
+    patch:
+      deprecated: true
+      description: 'Update fields for a user.
+
+
+        *This API endpoint is deprecated, please use the endpoint `/auth/fab/v1` for
+        this operation instead.*
+
+        '
+      operationId: patch_user
+      parameters:
+      - $ref: '#/components/parameters/UpdateMask'
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/User'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/UserCollectionItem'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Update a user
+      tags:
+      - User
+      x-openapi-router-controller: airflow.api_connexion.endpoints.forward_to_fab_endpoint
+  /variables:
+    get:
+      description: The collection does not contain data. To get data, you must get
+        a single entity.
+      operationId: get_variables
+      parameters:
+      - $ref: '#/components/parameters/PageLimit'
+      - $ref: '#/components/parameters/PageOffset'
+      - $ref: '#/components/parameters/OrderBy'
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VariableCollection'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: List variables
+      tags:
+      - Variable
+      x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint
+    post:
+      operationId: post_variables
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Variable'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Variable'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+      summary: Create a variable
+      tags:
+      - Variable
+      x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint
+  /variables/{variable_key}:
+    delete:
+      operationId: delete_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'
+      summary: Delete a variable
+      tags:
+      - Variable
+      x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint
+    get:
+      description: Get a variable by key.
+      operationId: get_variable
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Variable'
+          description: Success.
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Get a variable
+      tags:
+      - Variable
+      x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint
+    parameters:
+    - $ref: '#/components/parameters/VariableKey'
+    patch:
+      description: Update a variable by key.
+      operationId: patch_variable
+      parameters:
+      - $ref: '#/components/parameters/UpdateMask'
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Variable'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Variable'
+          description: Success.
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthenticated'
+        '403':
+          $ref: '#/components/responses/PermissionDenied'
+        '404':
+          $ref: '#/components/responses/NotFound'
+      summary: Update a variable
+      tags:
+      - Variable
+      x-openapi-router-controller: airflow.api_connexion.endpoints.variable_endpoint
+  /version:
+    get:
+      operationId: get_version
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VersionInfo'
+          description: Success.
+      summary: Get version information
+      tags:
+      - Monitoring
+      x-openapi-router-controller: airflow.api_connexion.endpoints.version_endpoint
+security:
+- Basic: []
+- GoogleOpenID: []
+- Kerberos: []
+servers:
+- description: Apache Airflow Stable API.
+  url: /api/v1
+tags:
+- name: Config
+- name: Connection
+- name: DAG
+- name: DAGRun
+- name: EventLog
+- name: ImportError
+- name: Monitoring
+- name: Pool
+- name: Provider
+- name: TaskInstance
+- name: Variable
+- name: XCom
+- name: Plugin
+- name: Role
+- name: Permission
+- name: User
+- name: DagWarning
+- name: Dataset
diff --git a/test-requirements.txt b/test-requirements.txt
deleted file mode 100644
index 2ccbc58..0000000
--- a/test-requirements.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# 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.
-
-pytest-cov>=2.8.1
-python_dateutil >= 2.5.3
-urllib3 >= 1.25.3
diff --git a/dev/test_python_client.py b/test_python_client.py
similarity index 71%
rename from dev/test_python_client.py
rename to test_python_client.py
index 9dd10c2..ea0f42d 100644
--- a/dev/test_python_client.py
+++ b/test_python_client.py
@@ -14,9 +14,22 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# PEP 723 compliant inline script metadata (not yet widely supported)
+# /// script
+# requires-python = ">=3.8"
+# dependencies = [
+#   "apache-airflow-client",
+#   "rich",
+# ]
+# ///
+
+from __future__ import annotations
+
 import uuid
 
 import airflow_client.client
+
 try:
     # If you have rich installed, you will have nice colored output of the API responses
     from rich import print
@@ -42,9 +55,7 @@
 
 # Configure HTTP basic authorization: Basic
 configuration = airflow_client.client.Configuration(
-    host="http://localhost:8080/api/v1",
-    username='admin',
-    password='admin'
+    host="http://localhost:8080/api/v1", username="admin", password="admin"
 )
 
 # Make sure in the [core] section, the  `load_examples` config is set to True in your airflow.cfg
@@ -53,47 +64,44 @@
 
 # Enter a context with an instance of the API client
 with airflow_client.client.ApiClient(configuration) as api_client:
-
     errors = False
 
-    print('[blue]Getting DAG list')
+    print("[blue]Getting DAG list")
     dag_api_instance = dag_api.DAGApi(api_client)
     try:
         api_response = dag_api_instance.get_dags()
         print(api_response)
     except airflow_client.client.OpenApiException as e:
-        print("[red]Exception when calling DagAPI->get_dags: %s\n" % e)
+        print(f"[red]Exception when calling DagAPI->get_dags: {e}\n")
         errors = True
     else:
-        print('[green]Getting DAG list successful')
+        print("[green]Getting DAG list successful")
 
-
-    print('[blue]Getting Tasks for a DAG')
+    print("[blue]Getting Tasks for a DAG")
     try:
         api_response = dag_api_instance.get_tasks(DAG_ID)
         print(api_response)
     except airflow_client.client.exceptions.OpenApiException as e:
-        print("[red]Exception when calling DagAPI->get_tasks: %s\n" % e)
+        print(f"[red]Exception when calling DagAPI->get_tasks: {e}\n")
         errors = True
     else:
-        print('[green]Getting Tasks successful')
+        print("[green]Getting Tasks successful")
 
-
-    print('[blue]Triggering a DAG run')
+    print("[blue]Triggering a DAG run")
     dag_run_api_instance = dag_run_api.DAGRunApi(api_client)
     try:
         # Create a DAGRun object (no dag_id should be specified because it is read-only property of DAGRun)
         # dag_run id is generated randomly to allow multiple executions of the script
         dag_run = DAGRun(
-            dag_run_id='some_test_run_' + uuid.uuid4().hex,
+            dag_run_id="some_test_run_" + uuid.uuid4().hex,
         )
         api_response = dag_run_api_instance.post_dag_run(DAG_ID, dag_run)
         print(api_response)
     except airflow_client.client.exceptions.OpenApiException as e:
-        print("[red]Exception when calling DAGRunAPI->post_dag_run: %s\n" % e)
+        print(f"[red]Exception when calling DAGRunAPI->post_dag_run: {e}\n")
         errors = True
     else:
-        print('[green]Posting DAG Run successful')
+        print("[green]Posting DAG Run successful")
 
     # Get current configuration. Note, this is disabled by default with most installation.
     # You need to set `expose_config = True` in Airflow configuration in order to retrieve configuration.
@@ -102,12 +110,19 @@
         api_response = conf_api_instance.get_config()
         print(api_response)
     except airflow_client.client.OpenApiException as e:
-        print("[red]Exception when calling ConfigApi->get_config: %s\n" % e)
-        errors = True
+        if "FORBIDDEN" in str(e):
+            print(
+                "[yellow]You need to set `expose_config = True` in Airflow configuration"
+                " in order to retrieve configuration."
+            )
+            print("[bright_blue]This is OK. Exposing config is disabled by default.")
+        else:
+            print(f"[red]Exception when calling DAGRunAPI->post_dag_run: {e}\n")
+            errors = True
     else:
-        print('[green]Config retrieved successfully')
+        print("[green]Config retrieved successfully")
 
     if errors:
-        print ('\n[red]There were errors while running the script - see above for details')
+        print("\n[red]There were errors while running the script - see above for details")
     else:
-        print ('\n[green]Everything went well')
+        print("\n[green]Everything went well")
diff --git a/version.txt b/version.txt
new file mode 100644
index 0000000..834f262
--- /dev/null
+++ b/version.txt
@@ -0,0 +1 @@
+2.8.0
