This is an automated email from the ASF dual-hosted git repository.

jasonliu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new a0b3a3b8b48 Update BulkDeleteAction to use generic type (#59207)
a0b3a3b8b48 is described below

commit a0b3a3b8b48b718fa346b2c6e2863c6e0de9e71d
Author: Guan-Ming (Wesley) Chiu <[email protected]>
AuthorDate: Tue Dec 9 08:39:50 2025 +0800

    Update BulkDeleteAction to use generic type (#59207)
---
 .../api_fastapi/core_api/datamodels/common.py      |   3 +-
 .../core_api/openapi/v2-rest-api-generated.yaml    |   6 +-
 .../airflow/ui/openapi-gen/requests/schemas.gen.ts |   6 +-
 .../airflow/ui/openapi-gen/requests/types.gen.ts   |   6 +-
 .../src/airflowctl/api/datamodels/generated.py     | 122 ++++++++++-----------
 5 files changed, 71 insertions(+), 72 deletions(-)

diff --git a/airflow-core/src/airflow/api_fastapi/core_api/datamodels/common.py 
b/airflow-core/src/airflow/api_fastapi/core_api/datamodels/common.py
index 32eb2c232ae..48b55f2f1e6 100644
--- a/airflow-core/src/airflow/api_fastapi/core_api/datamodels/common.py
+++ b/airflow-core/src/airflow/api_fastapi/core_api/datamodels/common.py
@@ -28,7 +28,6 @@ from typing import Annotated, Any, Generic, Literal, TypeVar, 
Union
 from pydantic import Discriminator, Field, Tag
 
 from airflow.api_fastapi.core_api.base import BaseModel, StrictBaseModel
-from airflow.api_fastapi.core_api.datamodels.task_instances import 
BulkTaskInstanceBody
 
 # Common Bulk Data Models
 T = TypeVar("T")
@@ -92,7 +91,7 @@ class BulkDeleteAction(BulkBaseAction[T]):
     """Bulk Delete entity serializer for request bodies."""
 
     action: Literal[BulkAction.DELETE] = Field(description="The action to be 
performed on the entities.")
-    entities: list[Union[str, BulkTaskInstanceBody]] = Field(
+    entities: list[Union[str, T]] = Field(
         ...,
         description="A list of entity id/key or entity objects to be deleted.",
     )
diff --git 
a/airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml
 
b/airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml
index d3d4ca3976e..1cc83846212 100644
--- 
a/airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml
+++ 
b/airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml
@@ -9275,7 +9275,7 @@ components:
           items:
             anyOf:
             - type: string
-            - $ref: '#/components/schemas/BulkTaskInstanceBody'
+            - $ref: '#/components/schemas/ConnectionBody'
           type: array
           title: Entities
           description: A list of entity id/key or entity objects to be deleted.
@@ -9299,7 +9299,7 @@ components:
           items:
             anyOf:
             - type: string
-            - $ref: '#/components/schemas/BulkTaskInstanceBody'
+            - $ref: '#/components/schemas/PoolBody'
           type: array
           title: Entities
           description: A list of entity id/key or entity objects to be deleted.
@@ -9323,7 +9323,7 @@ components:
           items:
             anyOf:
             - type: string
-            - $ref: '#/components/schemas/BulkTaskInstanceBody'
+            - $ref: '#/components/schemas/VariableBody'
           type: array
           title: Entities
           description: A list of entity id/key or entity objects to be deleted.
diff --git a/airflow-core/src/airflow/ui/openapi-gen/requests/schemas.gen.ts 
b/airflow-core/src/airflow/ui/openapi-gen/requests/schemas.gen.ts
index f5c194142c1..aa3e4cbe958 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/requests/schemas.gen.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/requests/schemas.gen.ts
@@ -863,7 +863,7 @@ export const $BulkDeleteAction_ConnectionBody_ = {
                         type: 'string'
                     },
                     {
-                        '$ref': '#/components/schemas/BulkTaskInstanceBody'
+                        '$ref': '#/components/schemas/ConnectionBody'
                     }
                 ]
             },
@@ -897,7 +897,7 @@ export const $BulkDeleteAction_PoolBody_ = {
                         type: 'string'
                     },
                     {
-                        '$ref': '#/components/schemas/BulkTaskInstanceBody'
+                        '$ref': '#/components/schemas/PoolBody'
                     }
                 ]
             },
@@ -931,7 +931,7 @@ export const $BulkDeleteAction_VariableBody_ = {
                         type: 'string'
                     },
                     {
-                        '$ref': '#/components/schemas/BulkTaskInstanceBody'
+                        '$ref': '#/components/schemas/VariableBody'
                     }
                 ]
             },
diff --git a/airflow-core/src/airflow/ui/openapi-gen/requests/types.gen.ts 
b/airflow-core/src/airflow/ui/openapi-gen/requests/types.gen.ts
index eb0d872cefb..be194652722 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/requests/types.gen.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/requests/types.gen.ts
@@ -269,7 +269,7 @@ export type BulkDeleteAction_ConnectionBody_ = {
     /**
      * A list of entity id/key or entity objects to be deleted.
      */
-    entities: Array<(string | BulkTaskInstanceBody)>;
+    entities: Array<(string | ConnectionBody)>;
     action_on_non_existence?: BulkActionNotOnExistence;
 };
 
@@ -281,7 +281,7 @@ export type BulkDeleteAction_PoolBody_ = {
     /**
      * A list of entity id/key or entity objects to be deleted.
      */
-    entities: Array<(string | BulkTaskInstanceBody)>;
+    entities: Array<(string | PoolBody)>;
     action_on_non_existence?: BulkActionNotOnExistence;
 };
 
@@ -293,7 +293,7 @@ export type BulkDeleteAction_VariableBody_ = {
     /**
      * A list of entity id/key or entity objects to be deleted.
      */
-    entities: Array<(string | BulkTaskInstanceBody)>;
+    entities: Array<(string | VariableBody)>;
     action_on_non_existence?: BulkActionNotOnExistence;
 };
 
diff --git a/airflow-ctl/src/airflowctl/api/datamodels/generated.py 
b/airflow-ctl/src/airflowctl/api/datamodels/generated.py
index 7a8cd4396ba..cb3ff8db9e8 100644
--- a/airflow-ctl/src/airflowctl/api/datamodels/generated.py
+++ b/airflow-ctl/src/airflowctl/api/datamodels/generated.py
@@ -1152,6 +1152,48 @@ class BulkCreateActionVariableBody(BaseModel):
     action_on_existence: BulkActionOnExistence | None = "fail"
 
 
+class BulkDeleteActionConnectionBody(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 | ConnectionBody],
+        Field(description="A list of entity id/key or entity objects to be 
deleted.", title="Entities"),
+    ]
+    action_on_non_existence: BulkActionNotOnExistence | None = "fail"
+
+
+class BulkDeleteActionPoolBody(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 | PoolBody],
+        Field(description="A list of entity id/key or entity objects to be 
deleted.", title="Entities"),
+    ]
+    action_on_non_existence: BulkActionNotOnExistence | None = "fail"
+
+
+class BulkDeleteActionVariableBody(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 | VariableBody],
+        Field(description="A list of entity id/key or entity objects to be 
deleted.", title="Entities"),
+    ]
+    action_on_non_existence: BulkActionNotOnExistence | None = "fail"
+
+
 class BulkTaskInstanceBody(BaseModel):
     """
     Request body for bulk update, and delete task instances.
@@ -1804,62 +1846,52 @@ class BackfillCollectionResponse(BaseModel):
     total_entries: Annotated[int, Field(title="Total Entries")]
 
 
-class BulkCreateActionBulkTaskInstanceBody(BaseModel):
+class BulkBodyConnectionBody(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[BulkTaskInstanceBody], Field(description="A list of entities to 
be created.", title="Entities")
+    actions: Annotated[
+        list[
+            BulkCreateActionConnectionBody | BulkUpdateActionConnectionBody | 
BulkDeleteActionConnectionBody
+        ],
+        Field(title="Actions"),
     ]
-    action_on_existence: BulkActionOnExistence | None = "fail"
 
 
-class BulkDeleteActionBulkTaskInstanceBody(BaseModel):
+class BulkBodyPoolBody(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 | BulkTaskInstanceBody],
-        Field(description="A list of entity id/key or entity objects to be 
deleted.", title="Entities"),
+    actions: Annotated[
+        list[BulkCreateActionPoolBody | BulkUpdateActionPoolBody | 
BulkDeleteActionPoolBody],
+        Field(title="Actions"),
     ]
-    action_on_non_existence: BulkActionNotOnExistence | None = "fail"
 
 
-class BulkDeleteActionConnectionBody(BaseModel):
+class BulkBodyVariableBody(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 | BulkTaskInstanceBody],
-        Field(description="A list of entity id/key or entity objects to be 
deleted.", title="Entities"),
+    actions: Annotated[
+        list[BulkCreateActionVariableBody | BulkUpdateActionVariableBody | 
BulkDeleteActionVariableBody],
+        Field(title="Actions"),
     ]
-    action_on_non_existence: BulkActionNotOnExistence | None = "fail"
 
 
-class BulkDeleteActionPoolBody(BaseModel):
+class BulkCreateActionBulkTaskInstanceBody(BaseModel):
     model_config = ConfigDict(
         extra="forbid",
     )
     action: Annotated[
-        Literal["delete"], Field(description="The action to be performed on 
the entities.", title="Action")
+        Literal["create"], Field(description="The action to be performed on 
the entities.", title="Action")
     ]
     entities: Annotated[
-        list[str | BulkTaskInstanceBody],
-        Field(description="A list of entity id/key or entity objects to be 
deleted.", title="Entities"),
+        list[BulkTaskInstanceBody], Field(description="A list of entities to 
be created.", title="Entities")
     ]
-    action_on_non_existence: BulkActionNotOnExistence | None = "fail"
+    action_on_existence: BulkActionOnExistence | None = "fail"
 
 
-class BulkDeleteActionVariableBody(BaseModel):
+class BulkDeleteActionBulkTaskInstanceBody(BaseModel):
     model_config = ConfigDict(
         extra="forbid",
     )
@@ -1987,35 +2019,3 @@ class BulkBodyBulkTaskInstanceBody(BaseModel):
         ],
         Field(title="Actions"),
     ]
-
-
-class BulkBodyConnectionBody(BaseModel):
-    model_config = ConfigDict(
-        extra="forbid",
-    )
-    actions: Annotated[
-        list[
-            BulkCreateActionConnectionBody | BulkUpdateActionConnectionBody | 
BulkDeleteActionConnectionBody
-        ],
-        Field(title="Actions"),
-    ]
-
-
-class BulkBodyPoolBody(BaseModel):
-    model_config = ConfigDict(
-        extra="forbid",
-    )
-    actions: Annotated[
-        list[BulkCreateActionPoolBody | BulkUpdateActionPoolBody | 
BulkDeleteActionPoolBody],
-        Field(title="Actions"),
-    ]
-
-
-class BulkBodyVariableBody(BaseModel):
-    model_config = ConfigDict(
-        extra="forbid",
-    )
-    actions: Annotated[
-        list[BulkCreateActionVariableBody | BulkUpdateActionVariableBody | 
BulkDeleteActionVariableBody],
-        Field(title="Actions"),
-    ]

Reply via email to