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

kaxilnaik pushed a commit to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 6b41467ce4834305ee01ea6a8975a8a3e3cb0be0
Author: Wei Lee <[email protected]>
AuthorDate: Thu Sep 18 18:19:00 2025 +0800

    feat(hitl): add map_index filter to get_hitl_details endpoint (#55776)
    
    (cherry picked from commit e5083a187efe44375408f640de231c219ce7b83e)
---
 airflow-core/src/airflow/api_fastapi/common/parameters.py    | 10 ++++++++++
 .../api_fastapi/core_api/openapi/v2-rest-api-generated.yaml  |  8 ++++++++
 .../src/airflow/api_fastapi/core_api/routes/public/hitl.py   |  9 +++++++--
 airflow-core/src/airflow/ui/openapi-gen/queries/common.ts    |  5 +++--
 .../src/airflow/ui/openapi-gen/queries/ensureQueryData.ts    |  6 ++++--
 airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts  |  6 ++++--
 airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts   |  6 ++++--
 airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts  |  6 ++++--
 .../src/airflow/ui/openapi-gen/requests/services.gen.ts      |  2 ++
 .../src/airflow/ui/openapi-gen/requests/types.gen.ts         |  1 +
 .../unit/api_fastapi/core_api/routes/public/test_hitl.py     | 12 ++++++++----
 11 files changed, 55 insertions(+), 16 deletions(-)

diff --git a/airflow-core/src/airflow/api_fastapi/common/parameters.py 
b/airflow-core/src/airflow/api_fastapi/common/parameters.py
index cc7ae250cba..e801d2d9e79 100644
--- a/airflow-core/src/airflow/api_fastapi/common/parameters.py
+++ b/airflow-core/src/airflow/api_fastapi/common/parameters.py
@@ -1007,6 +1007,16 @@ QueryHITLDetailTaskIdFilter = Annotated[
         )
     ),
 ]
+QueryHITLDetailMapIndexFilter = Annotated[
+    FilterParam[int | None],
+    Depends(
+        filter_param_factory(
+            TaskInstance.map_index,
+            int | None,
+            filter_name="map_index",
+        )
+    ),
+]
 QueryHITLDetailSubjectSearch = Annotated[
     _SearchParam,
     Depends(
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 7497456b84a..edba09a374b 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
@@ -8208,6 +8208,14 @@ paths:
           title: Task Id Pattern
         description: "SQL LIKE expression \u2014 use `%` / `_` wildcards (e.g. 
`%customer_%`).\
           \ Regular expressions are **not** supported."
+      - name: map_index
+        in: query
+        required: false
+        schema:
+          anyOf:
+          - type: integer
+          - type: 'null'
+          title: Map Index
       - name: state
         in: query
         required: false
diff --git 
a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py 
b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
index e3f4b59c448..7aa430ae630 100644
--- a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
+++ b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
@@ -29,6 +29,7 @@ from airflow.api_fastapi.common.db.common import SessionDep, 
paginated_select
 from airflow.api_fastapi.common.parameters import (
     QueryHITLDetailBodySearch,
     QueryHITLDetailDagIdPatternSearch,
+    QueryHITLDetailMapIndexFilter,
     QueryHITLDetailRespondedUserIdFilter,
     QueryHITLDetailRespondedUserNameFilter,
     QueryHITLDetailResponseReceivedFilter,
@@ -226,11 +227,13 @@ def get_hitl_details(
         ),
     ],
     session: SessionDep,
-    # ti related filter
+    # permission filter
     readable_ti_filter: ReadableTIFilterDep,
+    # ti related filter
     dag_id_pattern: QueryHITLDetailDagIdPatternSearch,
     task_id: QueryHITLDetailTaskIdFilter,
     task_id_pattern: QueryHITLDetailTaskIdPatternSearch,
+    map_index: QueryHITLDetailMapIndexFilter,
     ti_state: QueryTIStateFilter,
     # hitl detail related filter
     response_received: QueryHITLDetailResponseReceivedFilter,
@@ -258,11 +261,13 @@ def get_hitl_details(
     hitl_detail_select, total_entries = paginated_select(
         statement=query,
         filters=[
-            # ti related filter
+            # permission filter
             readable_ti_filter,
+            # ti related filter
             dag_id_pattern,
             task_id,
             task_id_pattern,
+            map_index,
             ti_state,
             # hitl detail related filter
             response_received,
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/common.ts 
b/airflow-core/src/airflow/ui/openapi-gen/queries/common.ts
index 6a237a0c8bb..974f97e752b 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/common.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/common.ts
@@ -566,7 +566,7 @@ export const UseTaskInstanceServiceGetHitlDetailKeyFn = ({ 
dagId, dagRunId, mapI
 export type TaskInstanceServiceGetHitlDetailsDefaultResponse = 
Awaited<ReturnType<typeof TaskInstanceService.getHitlDetails>>;
 export type TaskInstanceServiceGetHitlDetailsQueryResult<TData = 
TaskInstanceServiceGetHitlDetailsDefaultResponse, TError = unknown> = 
UseQueryResult<TData, TError>;
 export const useTaskInstanceServiceGetHitlDetailsKey = 
"TaskInstanceServiceGetHitlDetails";
-export const UseTaskInstanceServiceGetHitlDetailsKeyFn = ({ bodySearch, 
createdAtGt, createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, 
dagRunId, limit, offset, orderBy, respondedByUserId, respondedByUserName, 
responseReceived, state, subjectSearch, taskId, taskIdPattern }: {
+export const UseTaskInstanceServiceGetHitlDetailsKeyFn = ({ bodySearch, 
createdAtGt, createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, 
dagRunId, limit, mapIndex, offset, orderBy, respondedByUserId, 
respondedByUserName, responseReceived, state, subjectSearch, taskId, 
taskIdPattern }: {
   bodySearch?: string;
   createdAtGt?: string;
   createdAtGte?: string;
@@ -576,6 +576,7 @@ export const UseTaskInstanceServiceGetHitlDetailsKeyFn = ({ 
bodySearch, createdA
   dagIdPattern?: string;
   dagRunId: string;
   limit?: number;
+  mapIndex?: number;
   offset?: number;
   orderBy?: string[];
   respondedByUserId?: string[];
@@ -585,7 +586,7 @@ export const UseTaskInstanceServiceGetHitlDetailsKeyFn = ({ 
bodySearch, createdA
   subjectSearch?: string;
   taskId?: string;
   taskIdPattern?: string;
-}, queryKey?: Array<unknown>) => [useTaskInstanceServiceGetHitlDetailsKey, 
...(queryKey ?? [{ bodySearch, createdAtGt, createdAtGte, createdAtLt, 
createdAtLte, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, 
respondedByUserId, respondedByUserName, responseReceived, state, subjectSearch, 
taskId, taskIdPattern }])];
+}, queryKey?: Array<unknown>) => [useTaskInstanceServiceGetHitlDetailsKey, 
...(queryKey ?? [{ bodySearch, createdAtGt, createdAtGte, createdAtLt, 
createdAtLte, dagId, dagIdPattern, dagRunId, limit, mapIndex, offset, orderBy, 
respondedByUserId, respondedByUserName, responseReceived, state, subjectSearch, 
taskId, taskIdPattern }])];
 export type ImportErrorServiceGetImportErrorDefaultResponse = 
Awaited<ReturnType<typeof ImportErrorService.getImportError>>;
 export type ImportErrorServiceGetImportErrorQueryResult<TData = 
ImportErrorServiceGetImportErrorDefaultResponse, TError = unknown> = 
UseQueryResult<TData, TError>;
 export const useImportErrorServiceGetImportErrorKey = 
"ImportErrorServiceGetImportError";
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/ensureQueryData.ts 
b/airflow-core/src/airflow/ui/openapi-gen/queries/ensureQueryData.ts
index b18892b9799..3208901e3ff 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/ensureQueryData.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/ensureQueryData.ts
@@ -1081,6 +1081,7 @@ export const 
ensureUseTaskInstanceServiceGetHitlDetailData = (queryClient: Query
 * @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. 
`%customer_%`). Regular expressions are **not** supported.
 * @param data.taskId
 * @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards 
(e.g. `%customer_%`). Regular expressions are **not** supported.
+* @param data.mapIndex
 * @param data.state
 * @param data.responseReceived
 * @param data.respondedByUserId
@@ -1094,7 +1095,7 @@ export const 
ensureUseTaskInstanceServiceGetHitlDetailData = (queryClient: Query
 * @returns HITLDetailCollection Successful Response
 * @throws ApiError
 */
-export const ensureUseTaskInstanceServiceGetHitlDetailsData = (queryClient: 
QueryClient, { bodySearch, createdAtGt, createdAtGte, createdAtLt, 
createdAtLte, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, 
respondedByUserId, respondedByUserName, responseReceived, state, subjectSearch, 
taskId, taskIdPattern }: {
+export const ensureUseTaskInstanceServiceGetHitlDetailsData = (queryClient: 
QueryClient, { bodySearch, createdAtGt, createdAtGte, createdAtLt, 
createdAtLte, dagId, dagIdPattern, dagRunId, limit, mapIndex, offset, orderBy, 
respondedByUserId, respondedByUserName, responseReceived, state, subjectSearch, 
taskId, taskIdPattern }: {
   bodySearch?: string;
   createdAtGt?: string;
   createdAtGte?: string;
@@ -1104,6 +1105,7 @@ export const 
ensureUseTaskInstanceServiceGetHitlDetailsData = (queryClient: Quer
   dagIdPattern?: string;
   dagRunId: string;
   limit?: number;
+  mapIndex?: number;
   offset?: number;
   orderBy?: string[];
   respondedByUserId?: string[];
@@ -1113,7 +1115,7 @@ export const 
ensureUseTaskInstanceServiceGetHitlDetailsData = (queryClient: Quer
   subjectSearch?: string;
   taskId?: string;
   taskIdPattern?: string;
-}) => queryClient.ensureQueryData({ queryKey: 
Common.UseTaskInstanceServiceGetHitlDetailsKeyFn({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
offset, orderBy, respondedByUserId, respondedByUserName, responseReceived, 
state, subjectSearch, taskId, taskIdPattern }), queryFn: () => 
TaskInstanceService.getHitlDetails({ bodySearch, createdAtGt, createdAtGte, 
createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, offset, orde 
[...]
+}) => queryClient.ensureQueryData({ queryKey: 
Common.UseTaskInstanceServiceGetHitlDetailsKeyFn({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
mapIndex, offset, orderBy, respondedByUserId, respondedByUserName, 
responseReceived, state, subjectSearch, taskId, taskIdPattern }), queryFn: () 
=> TaskInstanceService.getHitlDetails({ bodySearch, createdAtGt, createdAtGte, 
createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, ma [...]
 /**
 * Get Import Error
 * Get an import error.
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts 
b/airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts
index 4921d78c74a..6b8755a48c8 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts
@@ -1081,6 +1081,7 @@ export const prefetchUseTaskInstanceServiceGetHitlDetail 
= (queryClient: QueryCl
 * @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. 
`%customer_%`). Regular expressions are **not** supported.
 * @param data.taskId
 * @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards 
(e.g. `%customer_%`). Regular expressions are **not** supported.
+* @param data.mapIndex
 * @param data.state
 * @param data.responseReceived
 * @param data.respondedByUserId
@@ -1094,7 +1095,7 @@ export const prefetchUseTaskInstanceServiceGetHitlDetail 
= (queryClient: QueryCl
 * @returns HITLDetailCollection Successful Response
 * @throws ApiError
 */
-export const prefetchUseTaskInstanceServiceGetHitlDetails = (queryClient: 
QueryClient, { bodySearch, createdAtGt, createdAtGte, createdAtLt, 
createdAtLte, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, 
respondedByUserId, respondedByUserName, responseReceived, state, subjectSearch, 
taskId, taskIdPattern }: {
+export const prefetchUseTaskInstanceServiceGetHitlDetails = (queryClient: 
QueryClient, { bodySearch, createdAtGt, createdAtGte, createdAtLt, 
createdAtLte, dagId, dagIdPattern, dagRunId, limit, mapIndex, offset, orderBy, 
respondedByUserId, respondedByUserName, responseReceived, state, subjectSearch, 
taskId, taskIdPattern }: {
   bodySearch?: string;
   createdAtGt?: string;
   createdAtGte?: string;
@@ -1104,6 +1105,7 @@ export const prefetchUseTaskInstanceServiceGetHitlDetails 
= (queryClient: QueryC
   dagIdPattern?: string;
   dagRunId: string;
   limit?: number;
+  mapIndex?: number;
   offset?: number;
   orderBy?: string[];
   respondedByUserId?: string[];
@@ -1113,7 +1115,7 @@ export const prefetchUseTaskInstanceServiceGetHitlDetails 
= (queryClient: QueryC
   subjectSearch?: string;
   taskId?: string;
   taskIdPattern?: string;
-}) => queryClient.prefetchQuery({ queryKey: 
Common.UseTaskInstanceServiceGetHitlDetailsKeyFn({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
offset, orderBy, respondedByUserId, respondedByUserName, responseReceived, 
state, subjectSearch, taskId, taskIdPattern }), queryFn: () => 
TaskInstanceService.getHitlDetails({ bodySearch, createdAtGt, createdAtGte, 
createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, offset, orderB 
[...]
+}) => queryClient.prefetchQuery({ queryKey: 
Common.UseTaskInstanceServiceGetHitlDetailsKeyFn({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
mapIndex, offset, orderBy, respondedByUserId, respondedByUserName, 
responseReceived, state, subjectSearch, taskId, taskIdPattern }), queryFn: () 
=> TaskInstanceService.getHitlDetails({ bodySearch, createdAtGt, createdAtGte, 
createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, mapI [...]
 /**
 * Get Import Error
 * Get an import error.
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts 
b/airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts
index 87263738664..484d68f3fde 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts
@@ -1081,6 +1081,7 @@ export const useTaskInstanceServiceGetHitlDetail = <TData 
= Common.TaskInstanceS
 * @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. 
`%customer_%`). Regular expressions are **not** supported.
 * @param data.taskId
 * @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards 
(e.g. `%customer_%`). Regular expressions are **not** supported.
+* @param data.mapIndex
 * @param data.state
 * @param data.responseReceived
 * @param data.respondedByUserId
@@ -1094,7 +1095,7 @@ export const useTaskInstanceServiceGetHitlDetail = <TData 
= Common.TaskInstanceS
 * @returns HITLDetailCollection Successful Response
 * @throws ApiError
 */
-export const useTaskInstanceServiceGetHitlDetails = <TData = 
Common.TaskInstanceServiceGetHitlDetailsDefaultResponse, TError = unknown, 
TQueryKey extends Array<unknown> = unknown[]>({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
offset, orderBy, respondedByUserId, respondedByUserName, responseReceived, 
state, subjectSearch, taskId, taskIdPattern }: {
+export const useTaskInstanceServiceGetHitlDetails = <TData = 
Common.TaskInstanceServiceGetHitlDetailsDefaultResponse, TError = unknown, 
TQueryKey extends Array<unknown> = unknown[]>({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
mapIndex, offset, orderBy, respondedByUserId, respondedByUserName, 
responseReceived, state, subjectSearch, taskId, taskIdPattern }: {
   bodySearch?: string;
   createdAtGt?: string;
   createdAtGte?: string;
@@ -1104,6 +1105,7 @@ export const useTaskInstanceServiceGetHitlDetails = 
<TData = Common.TaskInstance
   dagIdPattern?: string;
   dagRunId: string;
   limit?: number;
+  mapIndex?: number;
   offset?: number;
   orderBy?: string[];
   respondedByUserId?: string[];
@@ -1113,7 +1115,7 @@ export const useTaskInstanceServiceGetHitlDetails = 
<TData = Common.TaskInstance
   subjectSearch?: string;
   taskId?: string;
   taskIdPattern?: string;
-}, queryKey?: TQueryKey, options?: Omit<UseQueryOptions<TData, TError>, 
"queryKey" | "queryFn">) => useQuery<TData, TError>({ queryKey: 
Common.UseTaskInstanceServiceGetHitlDetailsKeyFn({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
offset, orderBy, respondedByUserId, respondedByUserName, responseReceived, 
state, subjectSearch, taskId, taskIdPattern }, queryKey), queryFn: () => 
TaskInstanceService.getHitlDetails({ bodySearch, crea [...]
+}, queryKey?: TQueryKey, options?: Omit<UseQueryOptions<TData, TError>, 
"queryKey" | "queryFn">) => useQuery<TData, TError>({ queryKey: 
Common.UseTaskInstanceServiceGetHitlDetailsKeyFn({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
mapIndex, offset, orderBy, respondedByUserId, respondedByUserName, 
responseReceived, state, subjectSearch, taskId, taskIdPattern }, queryKey), 
queryFn: () => TaskInstanceService.getHitlDetails({ bodySe [...]
 /**
 * Get Import Error
 * Get an import error.
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts 
b/airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts
index a2c61b40231..3c3a61def57 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts
@@ -1081,6 +1081,7 @@ export const useTaskInstanceServiceGetHitlDetailSuspense 
= <TData = Common.TaskI
 * @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. 
`%customer_%`). Regular expressions are **not** supported.
 * @param data.taskId
 * @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards 
(e.g. `%customer_%`). Regular expressions are **not** supported.
+* @param data.mapIndex
 * @param data.state
 * @param data.responseReceived
 * @param data.respondedByUserId
@@ -1094,7 +1095,7 @@ export const useTaskInstanceServiceGetHitlDetailSuspense 
= <TData = Common.TaskI
 * @returns HITLDetailCollection Successful Response
 * @throws ApiError
 */
-export const useTaskInstanceServiceGetHitlDetailsSuspense = <TData = 
Common.TaskInstanceServiceGetHitlDetailsDefaultResponse, TError = unknown, 
TQueryKey extends Array<unknown> = unknown[]>({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
offset, orderBy, respondedByUserId, respondedByUserName, responseReceived, 
state, subjectSearch, taskId, taskIdPattern }: {
+export const useTaskInstanceServiceGetHitlDetailsSuspense = <TData = 
Common.TaskInstanceServiceGetHitlDetailsDefaultResponse, TError = unknown, 
TQueryKey extends Array<unknown> = unknown[]>({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
mapIndex, offset, orderBy, respondedByUserId, respondedByUserName, 
responseReceived, state, subjectSearch, taskId, taskIdPattern }: {
   bodySearch?: string;
   createdAtGt?: string;
   createdAtGte?: string;
@@ -1104,6 +1105,7 @@ export const useTaskInstanceServiceGetHitlDetailsSuspense 
= <TData = Common.Task
   dagIdPattern?: string;
   dagRunId: string;
   limit?: number;
+  mapIndex?: number;
   offset?: number;
   orderBy?: string[];
   respondedByUserId?: string[];
@@ -1113,7 +1115,7 @@ export const useTaskInstanceServiceGetHitlDetailsSuspense 
= <TData = Common.Task
   subjectSearch?: string;
   taskId?: string;
   taskIdPattern?: string;
-}, queryKey?: TQueryKey, options?: Omit<UseQueryOptions<TData, TError>, 
"queryKey" | "queryFn">) => useSuspenseQuery<TData, TError>({ queryKey: 
Common.UseTaskInstanceServiceGetHitlDetailsKeyFn({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
offset, orderBy, respondedByUserId, respondedByUserName, responseReceived, 
state, subjectSearch, taskId, taskIdPattern }, queryKey), queryFn: () => 
TaskInstanceService.getHitlDetails({ bodySear [...]
+}, queryKey?: TQueryKey, options?: Omit<UseQueryOptions<TData, TError>, 
"queryKey" | "queryFn">) => useSuspenseQuery<TData, TError>({ queryKey: 
Common.UseTaskInstanceServiceGetHitlDetailsKeyFn({ bodySearch, createdAtGt, 
createdAtGte, createdAtLt, createdAtLte, dagId, dagIdPattern, dagRunId, limit, 
mapIndex, offset, orderBy, respondedByUserId, respondedByUserName, 
responseReceived, state, subjectSearch, taskId, taskIdPattern }, queryKey), 
queryFn: () => TaskInstanceService.getHitlDetails( [...]
 /**
 * Get Import Error
 * Get an import error.
diff --git a/airflow-core/src/airflow/ui/openapi-gen/requests/services.gen.ts 
b/airflow-core/src/airflow/ui/openapi-gen/requests/services.gen.ts
index 7bf0a9aede3..ab13ef32449 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/requests/services.gen.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/requests/services.gen.ts
@@ -2790,6 +2790,7 @@ export class TaskInstanceService {
      * @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards 
(e.g. `%customer_%`). Regular expressions are **not** supported.
      * @param data.taskId
      * @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards 
(e.g. `%customer_%`). Regular expressions are **not** supported.
+     * @param data.mapIndex
      * @param data.state
      * @param data.responseReceived
      * @param data.respondedByUserId
@@ -2818,6 +2819,7 @@ export class TaskInstanceService {
                 dag_id_pattern: data.dagIdPattern,
                 task_id: data.taskId,
                 task_id_pattern: data.taskIdPattern,
+                map_index: data.mapIndex,
                 state: data.state,
                 response_received: data.responseReceived,
                 responded_by_user_id: data.respondedByUserId,
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 49ecfb4a71a..1f4f7a8ab3e 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
@@ -2865,6 +2865,7 @@ export type GetHitlDetailsData = {
     dagIdPattern?: string | null;
     dagRunId: string;
     limit?: number;
+    mapIndex?: number | null;
     offset?: number;
     orderBy?: Array<(string)>;
     respondedByUserId?: Array<(string)>;
diff --git 
a/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_hitl.py 
b/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_hitl.py
index 9a431565e7d..22371bf1c25 100644
--- a/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_hitl.py
+++ b/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_hitl.py
@@ -135,7 +135,7 @@ def sample_tis(create_task_instance: CreateTaskInstance) -> 
list[TaskInstance]:
             dag_id=f"hitl_dag_{i}",
             run_id=f"hitl_run_{i}",
             task_id=f"hitl_task_{i}",
-            state=TaskInstanceState.RUNNING,
+            state=TaskInstanceState.DEFERRED,
         )
         for i in range(5)
     ]
@@ -542,7 +542,9 @@ class TestGetHITLDetailsEndpoint:
             ({"dag_id_pattern": "other_Dag_"}, 3),
             ({"task_id": "hitl_task_0"}, 1),
             ({"task_id_pattern": "another_hitl"}, 3),
-            ({"state": "running"}, 5),
+            ({"map_index": -1}, 8),
+            ({"map_index": 1}, 0),
+            ({"state": "deferred"}, 5),
             ({"state": "success"}, 3),
             # hitl detail related filter
             ({"subject_search": "This is subject"}, 5),
@@ -570,9 +572,11 @@ class TestGetHITLDetailsEndpoint:
         ids=[
             "dag_id_pattern_hitl_dag",
             "dag_id_pattern_other_dag",
-            "task_id_pattern",
             "task_id",
-            "ti_state_running",
+            "task_id_pattern",
+            "map_index_none",
+            "map_index_1",
+            "ti_state_deferred",
             "ti_state_success",
             "subject",
             "body",

Reply via email to