This is an automated email from the ASF dual-hosted git repository.
Lee-W pushed a commit to branch airflow-ctl/v0-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/airflow-ctl/v0-1-test by this
push:
new 5984acd1e28 Regenerate airflowctl datamodels from this branch's API
spec (#71094)
5984acd1e28 is described below
commit 5984acd1e28b2ac22e4a2e95f186eb5761374a9b
Author: Wei Lee <[email protected]>
AuthorDate: Wed Aug 5 17:23:56 2026 +0800
Regenerate airflowctl datamodels from this branch's API spec (#71094)
---
.../src/airflowctl/api/datamodels/generated.py | 272 ++-------------------
1 file changed, 22 insertions(+), 250 deletions(-)
diff --git a/airflow-ctl/src/airflowctl/api/datamodels/generated.py
b/airflow-ctl/src/airflowctl/api/datamodels/generated.py
index 2d89d0c513b..43719cbb096 100644
--- a/airflow-ctl/src/airflowctl/api/datamodels/generated.py
+++ b/airflow-ctl/src/airflowctl/api/datamodels/generated.py
@@ -49,27 +49,6 @@ class AssetAliasResponse(BaseModel):
group: Annotated[str, Field(title="Group")]
-class AssetStateBody(BaseModel):
- """
- Request body for setting an asset state value.
- """
-
- model_config = ConfigDict(
- extra="forbid",
- )
- value: Annotated[str, Field(max_length=65535, title="Value")]
-
-
-class AssetStateResponse(BaseModel):
- """
- A single asset state key/value pair with metadata.
- """
-
- key: Annotated[str, Field(title="Key")]
- value: Annotated[str, Field(title="Value")]
- updated_at: Annotated[datetime, Field(title="Updated At")]
-
-
class AssetWatcherResponse(BaseModel):
"""
Asset watcher serializer for responses.
@@ -129,32 +108,6 @@ class BulkActionResponse(BaseModel):
] = []
-class BulkDAGRunBody(BaseModel):
- """
- Request body for bulk delete operations on Dag Runs.
- """
-
- model_config = ConfigDict(
- extra="forbid",
- )
- dag_run_id: Annotated[str, Field(title="Dag Run Id")]
- dag_id: Annotated[str | None, Field(title="Dag Id")] = None
-
-
-class BulkDeleteActionBulkDAGRunBody(BaseModel):
- model_config = ConfigDict(
- extra="forbid",
- )
- action: Annotated[
- Literal["delete"], Field(description="The action to be performed on
the entities.", title="Action")
- ]
- entities: Annotated[
- list[str | BulkDAGRunBody],
- Field(description="A list of entity id/key or entity objects to be
deleted.", title="Entities"),
- ]
- action_on_non_existence: BulkActionNotOnExistence | None = "fail"
-
-
class BulkResponse(BaseModel):
"""
Serializer for responses to bulk entity operations.
@@ -182,26 +135,6 @@ class Note(RootModel[str]):
root: Annotated[str, Field(max_length=1000, title="Note")]
-class BulkUpdateActionBulkDAGRunBody(BaseModel):
- model_config = ConfigDict(
- extra="forbid",
- )
- action: Annotated[
- Literal["update"], Field(description="The action to be performed on
the entities.", title="Action")
- ]
- entities: Annotated[
- list[BulkDAGRunBody], Field(description="A list of entities to be
updated.", title="Entities")
- ]
- update_mask: Annotated[
- list[str] | None,
- Field(
- description="A list of field names to update for each entity.Only
these fields will be applied from the request body to the database model.Any
extra fields provided will be ignored.",
- title="Update Mask",
- ),
- ] = None
- action_on_non_existence: BulkActionNotOnExistence | None = "fail"
-
-
class TaskIds(RootModel[list[Any]]):
root: Annotated[list[Any], Field(max_length=2, min_length=2)]
@@ -235,12 +168,11 @@ class ClearTaskInstancesBody(BaseModel):
run_on_latest_version: Annotated[
bool | None,
Field(
- description="(Experimental) Run on the latest bundle version of
the dag after clearing the task instances. If not specified, falls back to the
DAG-level ``rerun_with_latest_version`` parameter, then the ``[core]
rerun_with_latest_version`` config option, and finally ``False`` (the
historical default for clear/rerun).",
+ description="(Experimental) Run on the latest bundle version of
the dag after clearing the task instances.",
title="Run On Latest Version",
),
- ] = None
+ ] = False
prevent_running_task: Annotated[bool | None, Field(title="Prevent Running
Task")] = False
- note: Annotated[Note | None, Field(title="Note")] = None
class Value(RootModel[list[Any]]):
@@ -355,20 +287,23 @@ class DAGRunClearBody(BaseModel):
)
dry_run: Annotated[bool | None, Field(title="Dry Run")] = True
only_failed: Annotated[bool | None, Field(title="Only Failed")] = False
- only_new: Annotated[
- bool | None,
- Field(
- description="Only queue newly added tasks in the latest Dag
version without clearing existing tasks.",
- title="Only New",
- ),
- ] = False
run_on_latest_version: Annotated[
bool | None,
Field(
- description="(Experimental) Run on the latest bundle version of
the Dag after clearing the Dag Run. If not specified, falls back to the
DAG-level ``rerun_with_latest_version`` parameter, then the ``[core]
rerun_with_latest_version`` config option, and finally ``False`` (the
historical default for clear/rerun).",
+ description="(Experimental) Run on the latest bundle version of
the Dag after clearing the Dag Run.",
title="Run On Latest Version",
),
- ] = None
+ ] = False
+
+
+class DAGRunPatchStates(str, Enum):
+ """
+ Enum for Dag Run states when updating a Dag Run.
+ """
+
+ QUEUED = "queued"
+ SUCCESS = "success"
+ FAILED = "failed"
class DAGSourceResponse(BaseModel):
@@ -421,16 +356,6 @@ class DagRunAssetReference(BaseModel):
partition_key: Annotated[str | None, Field(title="Partition Key")] = None
-class DagRunMutableStates(str, Enum):
- """
- Dag Run states from which the run may be mutated (patched, deleted).
- """
-
- QUEUED = "queued"
- SUCCESS = "success"
- FAILED = "failed"
-
-
class DagRunState(str, Enum):
"""
All possible states that a DagRun can be in.
@@ -469,7 +394,6 @@ class DagRunType(str, Enum):
BACKFILL = "backfill"
SCHEDULED = "scheduled"
MANUAL = "manual"
- OPERATOR_TRIGGERED = "operator_triggered"
ASSET_TRIGGERED = "asset_triggered"
ASSET_MATERIALIZATION = "asset_materialization"
@@ -714,15 +638,6 @@ class MaterializeAssetBody(BaseModel):
partition_key: Annotated[str | None, Field(title="Partition Key")] = None
-class NewTaskResponse(BaseModel):
- """
- Lightweight response for new tasks that don't have TaskInstances yet.
- """
-
- task_id: Annotated[str, Field(title="Task Id")]
- task_display_name: Annotated[str, Field(title="Task Display Name")]
-
-
class PluginImportErrorResponse(BaseModel):
"""
Plugin Import Error serializer for responses.
@@ -973,28 +888,6 @@ class TaskOutletAssetReference(BaseModel):
updated_at: Annotated[datetime, Field(title="Updated At")]
-class TaskStateBody(BaseModel):
- """
- Request body for setting a task state value.
- """
-
- model_config = ConfigDict(
- extra="forbid",
- )
- value: Annotated[str, Field(max_length=65535, title="Value")]
-
-
-class TaskStateResponse(BaseModel):
- """
- A single task state key/value pair with metadata.
- """
-
- key: Annotated[str, Field(title="Key")]
- value: Annotated[str, Field(title="Value")]
- updated_at: Annotated[datetime, Field(title="Updated At")]
- expires_at: Annotated[datetime | None, Field(title="Expires At")] = None
-
-
class TimeDelta(BaseModel):
"""
TimeDelta can be used to interact with datetime.timedelta objects.
@@ -1225,15 +1118,6 @@ class AssetResponse(BaseModel):
last_asset_event: LastAssetEventResponse | None = None
-class AssetStateCollectionResponse(BaseModel):
- """
- All asset state entries for an asset.
- """
-
- asset_states: Annotated[list[AssetStateResponse], Field(title="Asset
States")]
- total_entries: Annotated[int, Field(title="Total Entries")]
-
-
class BackfillPostBody(BaseModel):
"""
Object used for create backfill request.
@@ -1246,16 +1130,10 @@ class BackfillPostBody(BaseModel):
from_date: Annotated[datetime, Field(title="From Date")]
to_date: Annotated[datetime, Field(title="To Date")]
run_backwards: Annotated[bool | None, Field(title="Run Backwards")] = False
- dag_run_conf: Annotated[dict[str, Any] | None, Field(title="Dag Run
Conf")] = None
+ dag_run_conf: Annotated[dict[str, Any] | None, Field(title="Dag Run
Conf")] = {}
reprocess_behavior: ReprocessBehavior | None = "none"
max_active_runs: Annotated[int | None, Field(title="Max Active Runs")] = 10
- run_on_latest_version: Annotated[
- bool | None,
- Field(
- description="Run on the latest bundle version of the Dag for each
backfilled run. If not specified, falls back to the DAG-level
``rerun_with_latest_version`` parameter, then the ``[core]
rerun_with_latest_version`` config option, and finally ``True`` (the historical
default for backfills).",
- title="Run On Latest Version",
- ),
- ] = None
+ run_on_latest_version: Annotated[bool | None, Field(title="Run On Latest
Version")] = True
class BackfillResponse(BaseModel):
@@ -1277,19 +1155,6 @@ class BackfillResponse(BaseModel):
dag_display_name: Annotated[str, Field(title="Dag Display Name")]
-class BulkCreateActionBulkDAGRunBody(BaseModel):
- model_config = ConfigDict(
- extra="forbid",
- )
- action: Annotated[
- Literal["create"], Field(description="The action to be performed on
the entities.", title="Action")
- ]
- entities: Annotated[
- list[BulkDAGRunBody], Field(description="A list of entities to be
created.", title="Entities")
- ]
- action_on_existence: BulkActionOnExistence | None = "fail"
-
-
class BulkCreateActionConnectionBody(BaseModel):
model_config = ConfigDict(
extra="forbid",
@@ -1511,7 +1376,6 @@ class DAGDetailsResponse(BaseModel):
timetable_summary: Annotated[str | None, Field(title="Timetable Summary")]
= None
timetable_description: Annotated[str | None, Field(title="Timetable
Description")] = None
timetable_partitioned: Annotated[bool, Field(title="Timetable
Partitioned")]
- timetable_periodic: Annotated[bool, Field(title="Timetable Periodic")]
tags: Annotated[list[DagTagResponse], Field(title="Tags")]
max_active_tasks: Annotated[int, Field(title="Max Active Tasks")]
max_active_runs: Annotated[int | None, Field(title="Max Active Runs")] =
None
@@ -1541,13 +1405,9 @@ class DAGDetailsResponse(BaseModel):
timezone: Annotated[str | None, Field(title="Timezone")] = None
last_parsed: Annotated[datetime | None, Field(title="Last Parsed")] = None
default_args: Annotated[dict[str, Any] | None, Field(title="Default
Args")] = None
- rerun_with_latest_version: Annotated[bool | None, Field(title="Rerun With
Latest Version")] = None
owner_links: Annotated[dict[str, str] | None, Field(title="Owner Links")]
= None
is_favorite: Annotated[bool | None, Field(title="Is Favorite")] = False
active_runs_count: Annotated[int | None, Field(title="Active Runs Count")]
= 0
- is_backfillable: Annotated[
- bool, Field(description="Whether this Dag's schedule supports
backfilling.", title="Is Backfillable")
- ]
file_token: Annotated[str, Field(description="Return file token.",
title="File Token")]
concurrency: Annotated[
int,
@@ -1581,7 +1441,6 @@ class DAGResponse(BaseModel):
timetable_summary: Annotated[str | None, Field(title="Timetable Summary")]
= None
timetable_description: Annotated[str | None, Field(title="Timetable
Description")] = None
timetable_partitioned: Annotated[bool, Field(title="Timetable
Partitioned")]
- timetable_periodic: Annotated[bool, Field(title="Timetable Periodic")]
tags: Annotated[list[DagTagResponse], Field(title="Tags")]
max_active_tasks: Annotated[int, Field(title="Max Active Tasks")]
max_active_runs: Annotated[int | None, Field(title="Max Active Runs")] =
None
@@ -1598,9 +1457,6 @@ class DAGResponse(BaseModel):
next_dagrun_run_after: Annotated[datetime | None, Field(title="Next Dagrun
Run After")] = None
allowed_run_types: Annotated[list[DagRunType] | None, Field(title="Allowed
Run Types")] = None
owners: Annotated[list[str], Field(title="Owners")]
- is_backfillable: Annotated[
- bool, Field(description="Whether this Dag's schedule supports
backfilling.", title="Is Backfillable")
- ]
file_token: Annotated[str, Field(description="Return file token.",
title="File Token")]
@@ -1612,7 +1468,7 @@ class DAGRunPatchBody(BaseModel):
model_config = ConfigDict(
extra="forbid",
)
- state: DagRunMutableStates | None = None
+ state: DAGRunPatchStates | None = None
note: Annotated[Note | None, Field(title="Note")] = None
@@ -1775,7 +1631,7 @@ class JobCollectionResponse(BaseModel):
class PatchTaskInstanceBody(BaseModel):
"""
- Request body for patching task instance state.
+ Request body for Clear Task Instances endpoint.
"""
model_config = ConfigDict(
@@ -1972,15 +1828,6 @@ class TaskResponse(BaseModel):
]
-class TaskStateCollectionResponse(BaseModel):
- """
- All task state entries for a task instance.
- """
-
- task_states: Annotated[list[TaskStateResponse], Field(title="Task States")]
- total_entries: Annotated[int, Field(title="Total Entries")]
-
-
class VariableCollectionResponse(BaseModel):
"""
Variable Collection serializer for responses.
@@ -2026,18 +1873,6 @@ class BackfillCollectionResponse(BaseModel):
total_entries: Annotated[int, Field(title="Total Entries")]
-class BulkBodyBulkDAGRunBody(BaseModel):
- model_config = ConfigDict(
- extra="forbid",
- )
- actions: Annotated[
- list[
- BulkCreateActionBulkDAGRunBody | BulkUpdateActionBulkDAGRunBody |
BulkDeleteActionBulkDAGRunBody
- ],
- Field(title="Actions"),
- ]
-
-
class BulkBodyConnectionBody(BaseModel):
model_config = ConfigDict(
extra="forbid",
@@ -2097,15 +1932,6 @@ class BulkDeleteActionBulkTaskInstanceBody(BaseModel):
action_on_non_existence: BulkActionNotOnExistence | None = "fail"
-class ClearTaskInstanceCollectionResponse(BaseModel):
- """
- Response for clear dag run dry run, which may contain new tasks without
full TaskInstance data.
- """
-
- task_instances: Annotated[list[TaskInstanceResponse | NewTaskResponse],
Field(title="Task Instances")]
- total_entries: Annotated[int, Field(title="Total Entries")]
-
-
class DAGCollectionResponse(BaseModel):
"""
Dag Collection serializer for responses.
@@ -2117,38 +1943,11 @@ class DAGCollectionResponse(BaseModel):
class DAGRunCollectionResponse(BaseModel):
"""
- Dag Run collection response supporting both offset and cursor pagination.
-
- A single flat model is used instead of a discriminated union
- (``Annotated[Offset | Cursor, Field(discriminator=...)]``) because
- the OpenAPI ``oneOf`` + ``discriminator`` construct is not handled
- correctly by ``@hey-api/openapi-ts`` /
``@7nohe/openapi-react-query-codegen``:
- return types degrade to ``unknown`` in JSDoc and can produce
- incorrect TypeScript types (see hey-api/openapi-ts#1613, #3270).
+ Dag Run Collection serializer for responses.
"""
dag_runs: Annotated[list[DAGRunResponse], Field(title="Dag Runs")]
- total_entries: Annotated[
- int | None,
- Field(
- description="Total number of matching items. Populated for offset
pagination, ``null`` when using cursor pagination.",
- title="Total Entries",
- ),
- ] = None
- next_cursor: Annotated[
- str | None,
- Field(
- description="Token pointing to the next page. Populated for cursor
pagination, ``null`` when using offset pagination or when there is no next
page.",
- title="Next Cursor",
- ),
- ] = None
- previous_cursor: Annotated[
- str | None,
- Field(
- description="Token pointing to the previous page. Populated for
cursor pagination, ``null`` when using offset pagination or when on the first
page.",
- title="Previous Cursor",
- ),
- ] = None
+ total_entries: Annotated[int, Field(title="Total Entries")]
class DAGWarningCollectionResponse(BaseModel):
@@ -2240,38 +2039,11 @@ class TaskCollectionResponse(BaseModel):
class TaskInstanceCollectionResponse(BaseModel):
"""
- Task instance collection response supporting both offset and cursor
pagination.
-
- A single flat model is used instead of a discriminated union
- (``Annotated[Offset | Cursor, Field(discriminator=...)]``) because
- the OpenAPI ``oneOf`` + ``discriminator`` construct is not handled
- correctly by ``@hey-api/openapi-ts`` /
``@7nohe/openapi-react-query-codegen``:
- return types degrade to ``unknown`` in JSDoc and can produce
- incorrect TypeScript types (see hey-api/openapi-ts#1613, #3270).
+ Task Instance Collection serializer for responses.
"""
task_instances: Annotated[list[TaskInstanceResponse], Field(title="Task
Instances")]
- total_entries: Annotated[
- int | None,
- Field(
- description="Total number of matching items. Populated for offset
pagination, ``null`` when using cursor pagination.",
- title="Total Entries",
- ),
- ] = None
- next_cursor: Annotated[
- str | None,
- Field(
- description="Token pointing to the next page. Populated for cursor
pagination, ``null`` when using offset pagination or when there is no next
page.",
- title="Next Cursor",
- ),
- ] = None
- previous_cursor: Annotated[
- str | None,
- Field(
- description="Token pointing to the previous page. Populated for
cursor pagination, ``null`` when using offset pagination or when on the first
page.",
- title="Previous Cursor",
- ),
- ] = None
+ total_entries: Annotated[int, Field(title="Total Entries")]
class TaskInstanceHistoryCollectionResponse(BaseModel):