Apache Airflow Python Client.DAGApi

All URIs are relative to http://localhost/api/v1

MethodHTTP requestDescription
delete_dagDELETE /dags/{dag_id}Delete a DAG
get_dagGET /dags/{dag_id}Get basic information about a DAG
get_dag_detailsGET /dags/{dag_id}/detailsGet a simplified representation of DAG
get_dag_sourceGET /dagSources/{file_token}Get a source code
get_dagsGET /dagsList DAGs
get_taskGET /dags/{dag_id}/tasks/{task_id}Get simplified representation of a task
get_tasksGET /dags/{dag_id}/tasksGet tasks for DAG
patch_dagPATCH /dags/{dag_id}Update a DAG
patch_dagsPATCH /dagsUpdate DAGs
post_clear_task_instancesPOST /dags/{dag_id}/clearTaskInstancesClear a set of task instances
post_set_task_instances_statePOST /dags/{dag_id}/updateTaskInstancesStateSet a state of task instances

delete_dag

delete_dag(dag_id)

Delete a DAG

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

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.error import Error
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    dag_id = "dag_id_example" # str | The DAG ID.

    # example passing only required values which don't have defaults set
    try:
        # Delete a DAG
        api_instance.delete_dag(dag_id)
    except client.ApiException as e:
        print("Exception when calling DAGApi->delete_dag: %s\n" % e)

Parameters

NameTypeDescriptionNotes
dag_idstrThe DAG ID.

Return type

void (empty response body)

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
204Success.-
400Client specified an invalid argument.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-
409An existing resource conflicts with the request.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_dag

DAG get_dag(dag_id)

Get basic information about a DAG

Presents only information available in database (DAGModel). If you need detailed information, consider using GET /dags/{dag_id}/details.

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.dag import DAG
from airflow_client.client.model.error import Error
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    dag_id = "dag_id_example" # str | The DAG ID.

    # example passing only required values which don't have defaults set
    try:
        # Get basic information about a DAG
        api_response = api_instance.get_dag(dag_id)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->get_dag: %s\n" % e)

Parameters

NameTypeDescriptionNotes
dag_idstrThe DAG ID.

Return type

DAG

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_dag_details

DAGDetail get_dag_details(dag_id)

Get a simplified representation of DAG

The response contains many DAG attributes, so the response can be large. If possible, consider using GET /dags/{dag_id}.

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.dag_detail import DAGDetail
from airflow_client.client.model.error import Error
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    dag_id = "dag_id_example" # str | The DAG ID.

    # example passing only required values which don't have defaults set
    try:
        # Get a simplified representation of DAG
        api_response = api_instance.get_dag_details(dag_id)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->get_dag_details: %s\n" % e)

Parameters

NameTypeDescriptionNotes
dag_idstrThe DAG ID.

Return type

DAGDetail

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_dag_source

InlineResponse2001 get_dag_source(file_token)

Get a source code

Get a source code using file token.

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.inline_response2001 import InlineResponse2001
from airflow_client.client.model.error import Error
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    file_token = "file_token_example" # str | 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. 

    # example passing only required values which don't have defaults set
    try:
        # Get a source code
        api_response = api_instance.get_dag_source(file_token)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->get_dag_source: %s\n" % e)

Parameters

NameTypeDescriptionNotes
file_tokenstrThe 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.

Return type

InlineResponse2001

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json, plain/text

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-
406A specified Accept header is not allowed.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_dags

DAGCollection get_dags()

List DAGs

List DAGs in the database. dag_id_pattern can be set to match dags of a specific pattern

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.dag_collection import DAGCollection
from airflow_client.client.model.error import Error
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
    offset = 0 # int | The number of items to skip before starting to collect the result set. (optional)
    order_by = "order_by_example" # str | 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*  (optional)
    tags = [
        "tags_example",
    ] # [str] | List of tags to filter results.  *New in version 2.2.0*  (optional)
    only_active = True # bool | Only filter active DAGs.  *New in version 2.1.1*  (optional) if omitted the server will use the default value of True
    dag_id_pattern = "dag_id_pattern_example" # str | If set, only return DAGs with dag_ids matching this pattern.  (optional)

    # example passing only required values which don't have defaults set
    # and optional values
    try:
        # List DAGs
        api_response = api_instance.get_dags(limit=limit, offset=offset, order_by=order_by, tags=tags, only_active=only_active, dag_id_pattern=dag_id_pattern)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->get_dags: %s\n" % e)

Parameters

NameTypeDescriptionNotes
limitintThe numbers of items to return.[optional] if omitted the server will use the default value of 100
offsetintThe number of items to skip before starting to collect the result set.[optional]
order_bystrThe 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[optional]
tags[str]List of tags to filter results. New in version 2.2.0[optional]
only_activeboolOnly filter active DAGs. New in version 2.1.1[optional] if omitted the server will use the default value of True
dag_id_patternstrIf set, only return DAGs with dag_ids matching this pattern.[optional]

Return type

DAGCollection

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_task

Task get_task(dag_id, task_id)

Get simplified representation of a task

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.task import Task
from airflow_client.client.model.error import Error
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    dag_id = "dag_id_example" # str | The DAG ID.
    task_id = "task_id_example" # str | The task ID.

    # example passing only required values which don't have defaults set
    try:
        # Get simplified representation of a task
        api_response = api_instance.get_task(dag_id, task_id)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->get_task: %s\n" % e)

Parameters

NameTypeDescriptionNotes
dag_idstrThe DAG ID.
task_idstrThe task ID.

Return type

Task

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_tasks

TaskCollection get_tasks(dag_id)

Get tasks for DAG

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.error import Error
from airflow_client.client.model.task_collection import TaskCollection
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    dag_id = "dag_id_example" # str | The DAG ID.
    order_by = "order_by_example" # str | 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*  (optional)

    # example passing only required values which don't have defaults set
    try:
        # Get tasks for DAG
        api_response = api_instance.get_tasks(dag_id)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->get_tasks: %s\n" % e)

    # example passing only required values which don't have defaults set
    # and optional values
    try:
        # Get tasks for DAG
        api_response = api_instance.get_tasks(dag_id, order_by=order_by)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->get_tasks: %s\n" % e)

Parameters

NameTypeDescriptionNotes
dag_idstrThe DAG ID.
order_bystrThe 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[optional]

Return type

TaskCollection

Authorization

No authorization required

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

patch_dag

DAG patch_dag(dag_id, dag)

Update a DAG

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.dag import DAG
from airflow_client.client.model.error import Error
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    dag_id = "dag_id_example" # str | The DAG ID.
    dag = DAG(
        is_paused=True,
    ) # DAG | 
    update_mask = [
        "update_mask_example",
    ] # [str] | 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.  (optional)

    # example passing only required values which don't have defaults set
    try:
        # Update a DAG
        api_response = api_instance.patch_dag(dag_id, dag)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->patch_dag: %s\n" % e)

    # example passing only required values which don't have defaults set
    # and optional values
    try:
        # Update a DAG
        api_response = api_instance.patch_dag(dag_id, dag, update_mask=update_mask)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->patch_dag: %s\n" % e)

Parameters

NameTypeDescriptionNotes
dag_idstrThe DAG ID.
dagDAG
update_mask[str]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.[optional]

Return type

DAG

Authorization

No authorization required

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

patch_dags

DAGCollection patch_dags(dag_id_pattern, dag)

Update DAGs

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

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.dag_collection import DAGCollection
from airflow_client.client.model.dag import DAG
from airflow_client.client.model.error import Error
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    dag_id_pattern = "dag_id_pattern_example" # str | If set, only update DAGs with dag_ids matching this pattern. 
    dag = DAG(
        is_paused=True,
    ) # DAG | 
    limit = 100 # int | The numbers of items to return. (optional) if omitted the server will use the default value of 100
    offset = 0 # int | The number of items to skip before starting to collect the result set. (optional)
    tags = [
        "tags_example",
    ] # [str] | List of tags to filter results.  *New in version 2.2.0*  (optional)
    update_mask = [
        "update_mask_example",
    ] # [str] | 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.  (optional)
    only_active = True # bool | Only filter active DAGs.  *New in version 2.1.1*  (optional) if omitted the server will use the default value of True

    # example passing only required values which don't have defaults set
    try:
        # Update DAGs
        api_response = api_instance.patch_dags(dag_id_pattern, dag)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->patch_dags: %s\n" % e)

    # example passing only required values which don't have defaults set
    # and optional values
    try:
        # Update DAGs
        api_response = api_instance.patch_dags(dag_id_pattern, dag, limit=limit, offset=offset, tags=tags, update_mask=update_mask, only_active=only_active)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->patch_dags: %s\n" % e)

Parameters

NameTypeDescriptionNotes
dag_id_patternstrIf set, only update DAGs with dag_ids matching this pattern.
dagDAG
limitintThe numbers of items to return.[optional] if omitted the server will use the default value of 100
offsetintThe number of items to skip before starting to collect the result set.[optional]
tags[str]List of tags to filter results. New in version 2.2.0[optional]
update_mask[str]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.[optional]
only_activeboolOnly filter active DAGs. New in version 2.1.1[optional] if omitted the server will use the default value of True

Return type

DAGCollection

Authorization

No authorization required

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

post_clear_task_instances

TaskInstanceReferenceCollection post_clear_task_instances(dag_id, clear_task_instances)

Clear a set of task instances

Clears a set of task instances associated with the DAG for a specified date range.

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.error import Error
from airflow_client.client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
from airflow_client.client.model.clear_task_instances import ClearTaskInstances
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    dag_id = "dag_id_example" # str | The DAG ID.
    clear_task_instances = ClearTaskInstances(
        dry_run=True,
        task_ids=[
            "task_ids_example",
        ],
        start_date="start_date_example",
        end_date="end_date_example",
        only_failed=True,
        only_running=False,
        include_subdags=True,
        include_parentdag=True,
        reset_dag_runs=True,
        dag_run_id="dag_run_id_example",
        include_upstream=False,
        include_downstream=False,
        include_future=False,
        include_past=False,
    ) # ClearTaskInstances | Parameters of action

    # example passing only required values which don't have defaults set
    try:
        # Clear a set of task instances
        api_response = api_instance.post_clear_task_instances(dag_id, clear_task_instances)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->post_clear_task_instances: %s\n" % e)

Parameters

NameTypeDescriptionNotes
dag_idstrThe DAG ID.
clear_task_instancesClearTaskInstancesParameters of action

Return type

TaskInstanceReferenceCollection

Authorization

No authorization required

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]

post_set_task_instances_state

TaskInstanceReferenceCollection post_set_task_instances_state(dag_id, update_task_instances_state)

Set a state of task instances

Updates the state for multiple task instances simultaneously.

Example

import time
import airflow_client.client
from airflow_client.client.api import dag_api
from airflow_client.client.model.update_task_instances_state import UpdateTaskInstancesState
from airflow_client.client.model.error import Error
from airflow_client.client.model.task_instance_reference_collection import TaskInstanceReferenceCollection
from pprint import pprint
# Defining the host is optional and defaults to http://localhost/api/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = client.Configuration(
    host = "http://localhost/api/v1"
)


# Enter a context with an instance of the API client
with client.ApiClient() as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    dag_id = "dag_id_example" # str | The DAG ID.
    update_task_instances_state = UpdateTaskInstancesState(
        dry_run=True,
        task_id="task_id_example",
        execution_date="execution_date_example",
        dag_run_id="dag_run_id_example",
        include_upstream=True,
        include_downstream=True,
        include_future=True,
        include_past=True,
        new_state="success",
    ) # UpdateTaskInstancesState | Parameters of action

    # example passing only required values which don't have defaults set
    try:
        # Set a state of task instances
        api_response = api_instance.post_set_task_instances_state(dag_id, update_task_instances_state)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->post_set_task_instances_state: %s\n" % e)

Parameters

NameTypeDescriptionNotes
dag_idstrThe DAG ID.
update_task_instances_stateUpdateTaskInstancesStateParameters of action

Return type

TaskInstanceReferenceCollection

Authorization

No authorization required

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

HTTP response details

Status codeDescriptionResponse headers
200Success.-
401Request not authenticated due to missing, invalid, authentication info.-
403Client does not have sufficient permission.-
404A specified resource is not found.-

[Back to top] [Back to API list] [Back to Model list] [Back to README]