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

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

commit 3b92bdf942962aa1fafed6cd480e5386fceb3bed
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Nov 1 19:32:10 2025 +0100

    [v3-1-test] Refactor trigger method (#57678) (#57687)
    
    (cherry picked from commit 974a37be00c3f4787b185ecb40bfceb0478ea42b)
    
    Co-authored-by: Bugra Ozturk <[email protected]>
---
 airflow-ctl/docs/images/command_hashes.txt         |   4 +-
 airflow-ctl/docs/images/output_dagrun.svg          |  70 ++++++-------
 airflow-ctl/docs/images/output_dags.svg            | 114 +++++++++++----------
 airflow-ctl/src/airflowctl/api/operations.py       |  28 ++---
 .../tests/airflow_ctl/api/test_operations.py       |  61 ++++++++---
 5 files changed, 155 insertions(+), 122 deletions(-)

diff --git a/airflow-ctl/docs/images/command_hashes.txt 
b/airflow-ctl/docs/images/command_hashes.txt
index 80a7ac0cbf4..1a017304f15 100644
--- a/airflow-ctl/docs/images/command_hashes.txt
+++ b/airflow-ctl/docs/images/command_hashes.txt
@@ -4,8 +4,8 @@ auth:f396d4bce90215599dde6ad0a8f30f29
 backfill:bbce9859a2d1ce054ad22db92dea8c05
 config:cb175bedf29e8a2c2c6a2ebd13d770a7
 connections:a16225e1c7d28488d0da612752669b4b
-dags:6928d0192e95fde5b0c092e0ea5a0703
-dagrun:ec1b6098822419967e621687bd7e5e4b
+dags:4c2ae65c76b32efcd86b5fd0c1831a2e
+dagrun:f47ed2a89ed0f8c71f79dba53a3a3882
 jobs:7f8680afff230eb9940bc7fca727bd52
 pools:03fc7d948cbecf16ff8d640eb8f0ce43
 providers:1c0afb2dff31d93ab2934b032a2250ab
diff --git a/airflow-ctl/docs/images/output_dagrun.svg 
b/airflow-ctl/docs/images/output_dagrun.svg
index f668da30299..a56fba6d5e5 100644
--- a/airflow-ctl/docs/images/output_dagrun.svg
+++ b/airflow-ctl/docs/images/output_dagrun.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 811 342.79999999999995" 
xmlns="http://www.w3.org/2000/svg";>
+<svg class="rich-terminal" viewBox="0 0 811 318.4" 
xmlns="http://www.w3.org/2000/svg";>
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -19,86 +19,82 @@
         font-weight: 700;
     }
 
-    .terminal-3012060912-matrix {
+    .terminal-894902431-matrix {
         font-family: Fira Code, monospace;
         font-size: 20px;
         line-height: 24.4px;
         font-variant-east-asian: full-width;
     }
 
-    .terminal-3012060912-title {
+    .terminal-894902431-title {
         font-size: 18px;
         font-weight: bold;
         font-family: arial;
     }
 
-    .terminal-3012060912-r1 { fill: #ff8700 }
-.terminal-3012060912-r2 { fill: #c5c8c6 }
-.terminal-3012060912-r3 { fill: #808080 }
-.terminal-3012060912-r4 { fill: #68a0b3 }
+    .terminal-894902431-r1 { fill: #ff8700 }
+.terminal-894902431-r2 { fill: #c5c8c6 }
+.terminal-894902431-r3 { fill: #808080 }
+.terminal-894902431-r4 { fill: #68a0b3 }
     </style>
 
     <defs>
-    <clipPath id="terminal-3012060912-clip-terminal">
-      <rect x="0" y="0" width="792.0" height="291.79999999999995" />
+    <clipPath id="terminal-894902431-clip-terminal">
+      <rect x="0" y="0" width="792.0" height="267.4" />
     </clipPath>
-    <clipPath id="terminal-3012060912-line-0">
+    <clipPath id="terminal-894902431-line-0">
     <rect x="0" y="1.5" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-1">
+<clipPath id="terminal-894902431-line-1">
     <rect x="0" y="25.9" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-2">
+<clipPath id="terminal-894902431-line-2">
     <rect x="0" y="50.3" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-3">
+<clipPath id="terminal-894902431-line-3">
     <rect x="0" y="74.7" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-4">
+<clipPath id="terminal-894902431-line-4">
     <rect x="0" y="99.1" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-5">
+<clipPath id="terminal-894902431-line-5">
     <rect x="0" y="123.5" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-6">
+<clipPath id="terminal-894902431-line-6">
     <rect x="0" y="147.9" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-7">
+<clipPath id="terminal-894902431-line-7">
     <rect x="0" y="172.3" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-8">
+<clipPath id="terminal-894902431-line-8">
     <rect x="0" y="196.7" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-9">
+<clipPath id="terminal-894902431-line-9">
     <rect x="0" y="221.1" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3012060912-line-10">
-    <rect x="0" y="245.5" width="793" height="24.65"/>
-            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="809" height="340.8" rx="8"/>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="809" height="316.4" rx="8"/>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
             <circle cx="44" cy="0" r="7" fill="#28c840"/>
             </g>
         
-    <g transform="translate(9, 41)" 
clip-path="url(#terminal-3012060912-clip-terminal)">
+    <g transform="translate(9, 41)" 
clip-path="url(#terminal-894902431-clip-terminal)">
     
-    <g class="terminal-3012060912-matrix">
-    <text class="terminal-3012060912-r1" x="0" y="20" textLength="73.2" 
clip-path="url(#terminal-3012060912-line-0)">Usage:</text><text 
class="terminal-3012060912-r3" x="85.4" y="20" textLength="207.4" 
clip-path="url(#terminal-3012060912-line-0)">airflowctl&#160;dagrun</text><text 
class="terminal-3012060912-r2" x="292.8" y="20" textLength="24.4" 
clip-path="url(#terminal-3012060912-line-0)">&#160;[</text><text 
class="terminal-3012060912-r4" x="317.2" y="20" textLength="24.4" clip-path="ur 
[...]
-</text><text class="terminal-3012060912-r2" x="793" y="44.4" textLength="12.2" 
clip-path="url(#terminal-3012060912-line-1)">
-</text><text class="terminal-3012060912-r2" x="0" y="68.8" textLength="305" 
clip-path="url(#terminal-3012060912-line-2)">Perform&#160;DagRun&#160;operations</text><text
 class="terminal-3012060912-r2" x="793" y="68.8" textLength="12.2" 
clip-path="url(#terminal-3012060912-line-2)">
-</text><text class="terminal-3012060912-r2" x="793" y="93.2" textLength="12.2" 
clip-path="url(#terminal-3012060912-line-3)">
-</text><text class="terminal-3012060912-r1" x="0" y="117.6" textLength="256.2" 
clip-path="url(#terminal-3012060912-line-4)">Positional&#160;Arguments:</text><text
 class="terminal-3012060912-r2" x="793" y="117.6" textLength="12.2" 
clip-path="url(#terminal-3012060912-line-4)">
-</text><text class="terminal-3012060912-r4" x="24.4" y="142" textLength="85.4" 
clip-path="url(#terminal-3012060912-line-5)">COMMAND</text><text 
class="terminal-3012060912-r2" x="793" y="142" textLength="12.2" 
clip-path="url(#terminal-3012060912-line-5)">
-</text><text class="terminal-3012060912-r4" x="48.8" y="166.4" 
textLength="36.6" clip-path="url(#terminal-3012060912-line-6)">get</text><text 
class="terminal-3012060912-r2" x="170.8" y="166.4" textLength="256.2" 
clip-path="url(#terminal-3012060912-line-6)">Perform&#160;get&#160;operation</text><text
 class="terminal-3012060912-r2" x="793" y="166.4" textLength="12.2" 
clip-path="url(#terminal-3012060912-line-6)">
-</text><text class="terminal-3012060912-r4" x="48.8" y="190.8" 
textLength="48.8" clip-path="url(#terminal-3012060912-line-7)">list</text><text 
class="terminal-3012060912-r2" x="170.8" y="190.8" textLength="268.4" 
clip-path="url(#terminal-3012060912-line-7)">Perform&#160;list&#160;operation</text><text
 class="terminal-3012060912-r2" x="793" y="190.8" textLength="12.2" 
clip-path="url(#terminal-3012060912-line-7)">
-</text><text class="terminal-3012060912-r4" x="48.8" y="215.2" 
textLength="85.4" 
clip-path="url(#terminal-3012060912-line-8)">trigger</text><text 
class="terminal-3012060912-r2" x="170.8" y="215.2" textLength="305" 
clip-path="url(#terminal-3012060912-line-8)">Perform&#160;trigger&#160;operation</text><text
 class="terminal-3012060912-r2" x="793" y="215.2" textLength="12.2" 
clip-path="url(#terminal-3012060912-line-8)">
-</text><text class="terminal-3012060912-r2" x="793" y="239.6" 
textLength="12.2" clip-path="url(#terminal-3012060912-line-9)">
-</text><text class="terminal-3012060912-r1" x="0" y="264" textLength="97.6" 
clip-path="url(#terminal-3012060912-line-10)">Options:</text><text 
class="terminal-3012060912-r2" x="793" y="264" textLength="12.2" 
clip-path="url(#terminal-3012060912-line-10)">
-</text><text class="terminal-3012060912-r4" x="24.4" y="288.4" 
textLength="24.4" clip-path="url(#terminal-3012060912-line-11)">-h</text><text 
class="terminal-3012060912-r2" x="48.8" y="288.4" textLength="24.4" 
clip-path="url(#terminal-3012060912-line-11)">,&#160;</text><text 
class="terminal-3012060912-r4" x="73.2" y="288.4" textLength="73.2" 
clip-path="url(#terminal-3012060912-line-11)">--help</text><text 
class="terminal-3012060912-r2" x="170.8" y="288.4" textLength="378.2" 
clip-path="ur [...]
+    <g class="terminal-894902431-matrix">
+    <text class="terminal-894902431-r1" x="0" y="20" textLength="73.2" 
clip-path="url(#terminal-894902431-line-0)">Usage:</text><text 
class="terminal-894902431-r3" x="85.4" y="20" textLength="207.4" 
clip-path="url(#terminal-894902431-line-0)">airflowctl&#160;dagrun</text><text 
class="terminal-894902431-r2" x="292.8" y="20" textLength="24.4" 
clip-path="url(#terminal-894902431-line-0)">&#160;[</text><text 
class="terminal-894902431-r4" x="317.2" y="20" textLength="24.4" 
clip-path="url(#term [...]
+</text><text class="terminal-894902431-r2" x="793" y="44.4" textLength="12.2" 
clip-path="url(#terminal-894902431-line-1)">
+</text><text class="terminal-894902431-r2" x="0" y="68.8" textLength="305" 
clip-path="url(#terminal-894902431-line-2)">Perform&#160;DagRun&#160;operations</text><text
 class="terminal-894902431-r2" x="793" y="68.8" textLength="12.2" 
clip-path="url(#terminal-894902431-line-2)">
+</text><text class="terminal-894902431-r2" x="793" y="93.2" textLength="12.2" 
clip-path="url(#terminal-894902431-line-3)">
+</text><text class="terminal-894902431-r1" x="0" y="117.6" textLength="256.2" 
clip-path="url(#terminal-894902431-line-4)">Positional&#160;Arguments:</text><text
 class="terminal-894902431-r2" x="793" y="117.6" textLength="12.2" 
clip-path="url(#terminal-894902431-line-4)">
+</text><text class="terminal-894902431-r4" x="24.4" y="142" textLength="85.4" 
clip-path="url(#terminal-894902431-line-5)">COMMAND</text><text 
class="terminal-894902431-r2" x="793" y="142" textLength="12.2" 
clip-path="url(#terminal-894902431-line-5)">
+</text><text class="terminal-894902431-r4" x="48.8" y="166.4" 
textLength="36.6" clip-path="url(#terminal-894902431-line-6)">get</text><text 
class="terminal-894902431-r2" x="170.8" y="166.4" textLength="256.2" 
clip-path="url(#terminal-894902431-line-6)">Perform&#160;get&#160;operation</text><text
 class="terminal-894902431-r2" x="793" y="166.4" textLength="12.2" 
clip-path="url(#terminal-894902431-line-6)">
+</text><text class="terminal-894902431-r4" x="48.8" y="190.8" 
textLength="48.8" clip-path="url(#terminal-894902431-line-7)">list</text><text 
class="terminal-894902431-r2" x="170.8" y="190.8" textLength="268.4" 
clip-path="url(#terminal-894902431-line-7)">Perform&#160;list&#160;operation</text><text
 class="terminal-894902431-r2" x="793" y="190.8" textLength="12.2" 
clip-path="url(#terminal-894902431-line-7)">
+</text><text class="terminal-894902431-r2" x="793" y="215.2" textLength="12.2" 
clip-path="url(#terminal-894902431-line-8)">
+</text><text class="terminal-894902431-r1" x="0" y="239.6" textLength="97.6" 
clip-path="url(#terminal-894902431-line-9)">Options:</text><text 
class="terminal-894902431-r2" x="793" y="239.6" textLength="12.2" 
clip-path="url(#terminal-894902431-line-9)">
+</text><text class="terminal-894902431-r4" x="24.4" y="264" textLength="24.4" 
clip-path="url(#terminal-894902431-line-10)">-h</text><text 
class="terminal-894902431-r2" x="48.8" y="264" textLength="24.4" 
clip-path="url(#terminal-894902431-line-10)">,&#160;</text><text 
class="terminal-894902431-r4" x="73.2" y="264" textLength="73.2" 
clip-path="url(#terminal-894902431-line-10)">--help</text><text 
class="terminal-894902431-r2" x="170.8" y="264" textLength="378.2" 
clip-path="url(#terminal-894 [...]
 </text>
     </g>
     </g>
diff --git a/airflow-ctl/docs/images/output_dags.svg 
b/airflow-ctl/docs/images/output_dags.svg
index 73c7b63a48f..496fa8d995c 100644
--- a/airflow-ctl/docs/images/output_dags.svg
+++ b/airflow-ctl/docs/images/output_dags.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 811 586.8" 
xmlns="http://www.w3.org/2000/svg";>
+<svg class="rich-terminal" viewBox="0 0 811 611.1999999999999" 
xmlns="http://www.w3.org/2000/svg";>
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -19,126 +19,130 @@
         font-weight: 700;
     }
 
-    .terminal-3052996798-matrix {
+    .terminal-111300623-matrix {
         font-family: Fira Code, monospace;
         font-size: 20px;
         line-height: 24.4px;
         font-variant-east-asian: full-width;
     }
 
-    .terminal-3052996798-title {
+    .terminal-111300623-title {
         font-size: 18px;
         font-weight: bold;
         font-family: arial;
     }
 
-    .terminal-3052996798-r1 { fill: #ff8700 }
-.terminal-3052996798-r2 { fill: #c5c8c6 }
-.terminal-3052996798-r3 { fill: #808080 }
-.terminal-3052996798-r4 { fill: #68a0b3 }
+    .terminal-111300623-r1 { fill: #ff8700 }
+.terminal-111300623-r2 { fill: #c5c8c6 }
+.terminal-111300623-r3 { fill: #808080 }
+.terminal-111300623-r4 { fill: #68a0b3 }
     </style>
 
     <defs>
-    <clipPath id="terminal-3052996798-clip-terminal">
-      <rect x="0" y="0" width="792.0" height="535.8" />
+    <clipPath id="terminal-111300623-clip-terminal">
+      <rect x="0" y="0" width="792.0" height="560.1999999999999" />
     </clipPath>
-    <clipPath id="terminal-3052996798-line-0">
+    <clipPath id="terminal-111300623-line-0">
     <rect x="0" y="1.5" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-1">
+<clipPath id="terminal-111300623-line-1">
     <rect x="0" y="25.9" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-2">
+<clipPath id="terminal-111300623-line-2">
     <rect x="0" y="50.3" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-3">
+<clipPath id="terminal-111300623-line-3">
     <rect x="0" y="74.7" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-4">
+<clipPath id="terminal-111300623-line-4">
     <rect x="0" y="99.1" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-5">
+<clipPath id="terminal-111300623-line-5">
     <rect x="0" y="123.5" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-6">
+<clipPath id="terminal-111300623-line-6">
     <rect x="0" y="147.9" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-7">
+<clipPath id="terminal-111300623-line-7">
     <rect x="0" y="172.3" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-8">
+<clipPath id="terminal-111300623-line-8">
     <rect x="0" y="196.7" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-9">
+<clipPath id="terminal-111300623-line-9">
     <rect x="0" y="221.1" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-10">
+<clipPath id="terminal-111300623-line-10">
     <rect x="0" y="245.5" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-11">
+<clipPath id="terminal-111300623-line-11">
     <rect x="0" y="269.9" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-12">
+<clipPath id="terminal-111300623-line-12">
     <rect x="0" y="294.3" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-13">
+<clipPath id="terminal-111300623-line-13">
     <rect x="0" y="318.7" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-14">
+<clipPath id="terminal-111300623-line-14">
     <rect x="0" y="343.1" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-15">
+<clipPath id="terminal-111300623-line-15">
     <rect x="0" y="367.5" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-16">
+<clipPath id="terminal-111300623-line-16">
     <rect x="0" y="391.9" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-17">
+<clipPath id="terminal-111300623-line-17">
     <rect x="0" y="416.3" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-18">
+<clipPath id="terminal-111300623-line-18">
     <rect x="0" y="440.7" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-19">
+<clipPath id="terminal-111300623-line-19">
     <rect x="0" y="465.1" width="793" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-3052996798-line-20">
+<clipPath id="terminal-111300623-line-20">
     <rect x="0" y="489.5" width="793" height="24.65"/>
             </clipPath>
+<clipPath id="terminal-111300623-line-21">
+    <rect x="0" y="513.9" width="793" height="24.65"/>
+            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="809" height="584.8" rx="8"/>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="809" height="609.2" rx="8"/>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
             <circle cx="44" cy="0" r="7" fill="#28c840"/>
             </g>
         
-    <g transform="translate(9, 41)" 
clip-path="url(#terminal-3052996798-clip-terminal)">
+    <g transform="translate(9, 41)" 
clip-path="url(#terminal-111300623-clip-terminal)">
     
-    <g class="terminal-3052996798-matrix">
-    <text class="terminal-3052996798-r1" x="0" y="20" textLength="73.2" 
clip-path="url(#terminal-3052996798-line-0)">Usage:</text><text 
class="terminal-3052996798-r3" x="85.4" y="20" textLength="183" 
clip-path="url(#terminal-3052996798-line-0)">airflowctl&#160;dags</text><text 
class="terminal-3052996798-r2" x="268.4" y="20" textLength="24.4" 
clip-path="url(#terminal-3052996798-line-0)">&#160;[</text><text 
class="terminal-3052996798-r4" x="292.8" y="20" textLength="24.4" 
clip-path="url(#t [...]
-</text><text class="terminal-3052996798-r2" x="793" y="44.4" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-1)">
-</text><text class="terminal-3052996798-r2" x="0" y="68.8" textLength="280.6" 
clip-path="url(#terminal-3052996798-line-2)">Perform&#160;Dags&#160;operations</text><text
 class="terminal-3052996798-r2" x="793" y="68.8" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-2)">
-</text><text class="terminal-3052996798-r2" x="793" y="93.2" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-3)">
-</text><text class="terminal-3052996798-r1" x="0" y="117.6" textLength="256.2" 
clip-path="url(#terminal-3052996798-line-4)">Positional&#160;Arguments:</text><text
 class="terminal-3052996798-r2" x="793" y="117.6" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-4)">
-</text><text class="terminal-3052996798-r4" x="24.4" y="142" textLength="85.4" 
clip-path="url(#terminal-3052996798-line-5)">COMMAND</text><text 
class="terminal-3052996798-r2" x="793" y="142" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-5)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="166.4" 
textLength="73.2" 
clip-path="url(#terminal-3052996798-line-6)">delete</text><text 
class="terminal-3052996798-r2" x="268.4" y="166.4" textLength="292.8" 
clip-path="url(#terminal-3052996798-line-6)">Perform&#160;delete&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="166.4" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-6)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="190.8" 
textLength="36.6" clip-path="url(#terminal-3052996798-line-7)">get</text><text 
class="terminal-3052996798-r2" x="268.4" y="190.8" textLength="256.2" 
clip-path="url(#terminal-3052996798-line-7)">Perform&#160;get&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="190.8" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-7)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="215.2" 
textLength="134.2" 
clip-path="url(#terminal-3052996798-line-8)">get-details</text><text 
class="terminal-3052996798-r2" x="268.4" y="215.2" textLength="353.8" 
clip-path="url(#terminal-3052996798-line-8)">Perform&#160;get_details&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="215.2" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-8)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="239.6" 
textLength="195.2" 
clip-path="url(#terminal-3052996798-line-9)">get-import-error</text><text 
class="terminal-3052996798-r2" x="268.4" y="239.6" textLength="414.8" 
clip-path="url(#terminal-3052996798-line-9)">Perform&#160;get_import_error&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="239.6" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-9)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="264" 
textLength="109.8" 
clip-path="url(#terminal-3052996798-line-10)">get-stats</text><text 
class="terminal-3052996798-r2" x="268.4" y="264" textLength="329.4" 
clip-path="url(#terminal-3052996798-line-10)">Perform&#160;get_stats&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="264" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-10)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="288.4" 
textLength="97.6" 
clip-path="url(#terminal-3052996798-line-11)">get-tags</text><text 
class="terminal-3052996798-r2" x="268.4" y="288.4" textLength="317.2" 
clip-path="url(#terminal-3052996798-line-11)">Perform&#160;get_tags&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="288.4" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-11)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="312.8" 
textLength="134.2" 
clip-path="url(#terminal-3052996798-line-12)">get-version</text><text 
class="terminal-3052996798-r2" x="268.4" y="312.8" textLength="353.8" 
clip-path="url(#terminal-3052996798-line-12)">Perform&#160;get_version&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="312.8" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-12)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="337.2" 
textLength="48.8" 
clip-path="url(#terminal-3052996798-line-13)">list</text><text 
class="terminal-3052996798-r2" x="268.4" y="337.2" textLength="268.4" 
clip-path="url(#terminal-3052996798-line-13)">Perform&#160;list&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="337.2" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-13)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="361.6" 
textLength="219.6" 
clip-path="url(#terminal-3052996798-line-14)">list-import-errors</text><text 
class="terminal-3052996798-r2" x="793" y="361.6" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-14)">
-</text><text class="terminal-3052996798-r2" x="268.4" y="386" 
textLength="439.2" 
clip-path="url(#terminal-3052996798-line-15)">Perform&#160;list_import_errors&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="386" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-15)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="410.4" 
textLength="146.4" 
clip-path="url(#terminal-3052996798-line-16)">list-version</text><text 
class="terminal-3052996798-r2" x="268.4" y="410.4" textLength="366" 
clip-path="url(#terminal-3052996798-line-16)">Perform&#160;list_version&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="410.4" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-16)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="434.8" 
textLength="146.4" 
clip-path="url(#terminal-3052996798-line-17)">list-warning</text><text 
class="terminal-3052996798-r2" x="268.4" y="434.8" textLength="366" 
clip-path="url(#terminal-3052996798-line-17)">Perform&#160;list_warning&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="434.8" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-17)">
-</text><text class="terminal-3052996798-r4" x="48.8" y="459.2" 
textLength="73.2" 
clip-path="url(#terminal-3052996798-line-18)">update</text><text 
class="terminal-3052996798-r2" x="268.4" y="459.2" textLength="292.8" 
clip-path="url(#terminal-3052996798-line-18)">Perform&#160;update&#160;operation</text><text
 class="terminal-3052996798-r2" x="793" y="459.2" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-18)">
-</text><text class="terminal-3052996798-r2" x="793" y="483.6" 
textLength="12.2" clip-path="url(#terminal-3052996798-line-19)">
-</text><text class="terminal-3052996798-r1" x="0" y="508" textLength="97.6" 
clip-path="url(#terminal-3052996798-line-20)">Options:</text><text 
class="terminal-3052996798-r2" x="793" y="508" textLength="12.2" 
clip-path="url(#terminal-3052996798-line-20)">
-</text><text class="terminal-3052996798-r4" x="24.4" y="532.4" 
textLength="24.4" clip-path="url(#terminal-3052996798-line-21)">-h</text><text 
class="terminal-3052996798-r2" x="48.8" y="532.4" textLength="24.4" 
clip-path="url(#terminal-3052996798-line-21)">,&#160;</text><text 
class="terminal-3052996798-r4" x="73.2" y="532.4" textLength="73.2" 
clip-path="url(#terminal-3052996798-line-21)">--help</text><text 
class="terminal-3052996798-r2" x="268.4" y="532.4" textLength="378.2" 
clip-path="ur [...]
+    <g class="terminal-111300623-matrix">
+    <text class="terminal-111300623-r1" x="0" y="20" textLength="73.2" 
clip-path="url(#terminal-111300623-line-0)">Usage:</text><text 
class="terminal-111300623-r3" x="85.4" y="20" textLength="183" 
clip-path="url(#terminal-111300623-line-0)">airflowctl&#160;dags</text><text 
class="terminal-111300623-r2" x="268.4" y="20" textLength="24.4" 
clip-path="url(#terminal-111300623-line-0)">&#160;[</text><text 
class="terminal-111300623-r4" x="292.8" y="20" textLength="24.4" 
clip-path="url(#terminal [...]
+</text><text class="terminal-111300623-r2" x="793" y="44.4" textLength="12.2" 
clip-path="url(#terminal-111300623-line-1)">
+</text><text class="terminal-111300623-r2" x="0" y="68.8" textLength="280.6" 
clip-path="url(#terminal-111300623-line-2)">Perform&#160;Dags&#160;operations</text><text
 class="terminal-111300623-r2" x="793" y="68.8" textLength="12.2" 
clip-path="url(#terminal-111300623-line-2)">
+</text><text class="terminal-111300623-r2" x="793" y="93.2" textLength="12.2" 
clip-path="url(#terminal-111300623-line-3)">
+</text><text class="terminal-111300623-r1" x="0" y="117.6" textLength="256.2" 
clip-path="url(#terminal-111300623-line-4)">Positional&#160;Arguments:</text><text
 class="terminal-111300623-r2" x="793" y="117.6" textLength="12.2" 
clip-path="url(#terminal-111300623-line-4)">
+</text><text class="terminal-111300623-r4" x="24.4" y="142" textLength="85.4" 
clip-path="url(#terminal-111300623-line-5)">COMMAND</text><text 
class="terminal-111300623-r2" x="793" y="142" textLength="12.2" 
clip-path="url(#terminal-111300623-line-5)">
+</text><text class="terminal-111300623-r4" x="48.8" y="166.4" 
textLength="73.2" 
clip-path="url(#terminal-111300623-line-6)">delete</text><text 
class="terminal-111300623-r2" x="268.4" y="166.4" textLength="292.8" 
clip-path="url(#terminal-111300623-line-6)">Perform&#160;delete&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="166.4" textLength="12.2" 
clip-path="url(#terminal-111300623-line-6)">
+</text><text class="terminal-111300623-r4" x="48.8" y="190.8" 
textLength="36.6" clip-path="url(#terminal-111300623-line-7)">get</text><text 
class="terminal-111300623-r2" x="268.4" y="190.8" textLength="256.2" 
clip-path="url(#terminal-111300623-line-7)">Perform&#160;get&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="190.8" textLength="12.2" 
clip-path="url(#terminal-111300623-line-7)">
+</text><text class="terminal-111300623-r4" x="48.8" y="215.2" 
textLength="134.2" 
clip-path="url(#terminal-111300623-line-8)">get-details</text><text 
class="terminal-111300623-r2" x="268.4" y="215.2" textLength="353.8" 
clip-path="url(#terminal-111300623-line-8)">Perform&#160;get_details&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="215.2" textLength="12.2" 
clip-path="url(#terminal-111300623-line-8)">
+</text><text class="terminal-111300623-r4" x="48.8" y="239.6" 
textLength="195.2" 
clip-path="url(#terminal-111300623-line-9)">get-import-error</text><text 
class="terminal-111300623-r2" x="268.4" y="239.6" textLength="414.8" 
clip-path="url(#terminal-111300623-line-9)">Perform&#160;get_import_error&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="239.6" textLength="12.2" 
clip-path="url(#terminal-111300623-line-9)">
+</text><text class="terminal-111300623-r4" x="48.8" y="264" textLength="109.8" 
clip-path="url(#terminal-111300623-line-10)">get-stats</text><text 
class="terminal-111300623-r2" x="268.4" y="264" textLength="329.4" 
clip-path="url(#terminal-111300623-line-10)">Perform&#160;get_stats&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="264" textLength="12.2" 
clip-path="url(#terminal-111300623-line-10)">
+</text><text class="terminal-111300623-r4" x="48.8" y="288.4" 
textLength="97.6" 
clip-path="url(#terminal-111300623-line-11)">get-tags</text><text 
class="terminal-111300623-r2" x="268.4" y="288.4" textLength="317.2" 
clip-path="url(#terminal-111300623-line-11)">Perform&#160;get_tags&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="288.4" textLength="12.2" 
clip-path="url(#terminal-111300623-line-11)">
+</text><text class="terminal-111300623-r4" x="48.8" y="312.8" 
textLength="134.2" 
clip-path="url(#terminal-111300623-line-12)">get-version</text><text 
class="terminal-111300623-r2" x="268.4" y="312.8" textLength="353.8" 
clip-path="url(#terminal-111300623-line-12)">Perform&#160;get_version&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="312.8" textLength="12.2" 
clip-path="url(#terminal-111300623-line-12)">
+</text><text class="terminal-111300623-r4" x="48.8" y="337.2" 
textLength="48.8" clip-path="url(#terminal-111300623-line-13)">list</text><text 
class="terminal-111300623-r2" x="268.4" y="337.2" textLength="268.4" 
clip-path="url(#terminal-111300623-line-13)">Perform&#160;list&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="337.2" textLength="12.2" 
clip-path="url(#terminal-111300623-line-13)">
+</text><text class="terminal-111300623-r4" x="48.8" y="361.6" 
textLength="219.6" 
clip-path="url(#terminal-111300623-line-14)">list-import-errors</text><text 
class="terminal-111300623-r2" x="793" y="361.6" textLength="12.2" 
clip-path="url(#terminal-111300623-line-14)">
+</text><text class="terminal-111300623-r2" x="268.4" y="386" 
textLength="439.2" 
clip-path="url(#terminal-111300623-line-15)">Perform&#160;list_import_errors&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="386" textLength="12.2" 
clip-path="url(#terminal-111300623-line-15)">
+</text><text class="terminal-111300623-r4" x="48.8" y="410.4" 
textLength="146.4" 
clip-path="url(#terminal-111300623-line-16)">list-version</text><text 
class="terminal-111300623-r2" x="268.4" y="410.4" textLength="366" 
clip-path="url(#terminal-111300623-line-16)">Perform&#160;list_version&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="410.4" textLength="12.2" 
clip-path="url(#terminal-111300623-line-16)">
+</text><text class="terminal-111300623-r4" x="48.8" y="434.8" 
textLength="146.4" 
clip-path="url(#terminal-111300623-line-17)">list-warning</text><text 
class="terminal-111300623-r2" x="268.4" y="434.8" textLength="366" 
clip-path="url(#terminal-111300623-line-17)">Perform&#160;list_warning&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="434.8" textLength="12.2" 
clip-path="url(#terminal-111300623-line-17)">
+</text><text class="terminal-111300623-r4" x="48.8" y="459.2" 
textLength="85.4" 
clip-path="url(#terminal-111300623-line-18)">trigger</text><text 
class="terminal-111300623-r2" x="268.4" y="459.2" textLength="305" 
clip-path="url(#terminal-111300623-line-18)">Perform&#160;trigger&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="459.2" textLength="12.2" 
clip-path="url(#terminal-111300623-line-18)">
+</text><text class="terminal-111300623-r4" x="48.8" y="483.6" 
textLength="73.2" 
clip-path="url(#terminal-111300623-line-19)">update</text><text 
class="terminal-111300623-r2" x="268.4" y="483.6" textLength="292.8" 
clip-path="url(#terminal-111300623-line-19)">Perform&#160;update&#160;operation</text><text
 class="terminal-111300623-r2" x="793" y="483.6" textLength="12.2" 
clip-path="url(#terminal-111300623-line-19)">
+</text><text class="terminal-111300623-r2" x="793" y="508" textLength="12.2" 
clip-path="url(#terminal-111300623-line-20)">
+</text><text class="terminal-111300623-r1" x="0" y="532.4" textLength="97.6" 
clip-path="url(#terminal-111300623-line-21)">Options:</text><text 
class="terminal-111300623-r2" x="793" y="532.4" textLength="12.2" 
clip-path="url(#terminal-111300623-line-21)">
+</text><text class="terminal-111300623-r4" x="24.4" y="556.8" 
textLength="24.4" clip-path="url(#terminal-111300623-line-22)">-h</text><text 
class="terminal-111300623-r2" x="48.8" y="556.8" textLength="24.4" 
clip-path="url(#terminal-111300623-line-22)">,&#160;</text><text 
class="terminal-111300623-r4" x="73.2" y="556.8" textLength="73.2" 
clip-path="url(#terminal-111300623-line-22)">--help</text><text 
class="terminal-111300623-r2" x="268.4" y="556.8" textLength="378.2" 
clip-path="url(#term [...]
 </text>
     </g>
     </g>
diff --git a/airflow-ctl/src/airflowctl/api/operations.py 
b/airflow-ctl/src/airflowctl/api/operations.py
index a2cb27eafc4..31e0298a19d 100644
--- a/airflow-ctl/src/airflowctl/api/operations.py
+++ b/airflow-ctl/src/airflowctl/api/operations.py
@@ -521,6 +521,20 @@ class DagsOperations(BaseOperations):
     def list_warning(self) -> DAGWarningCollectionResponse | 
ServerResponseError:
         return super().execute_list(path="dagWarnings", 
data_model=DAGWarningCollectionResponse)
 
+    def trigger(
+        self, dag_id: str, trigger_dag_run: TriggerDAGRunPostBody
+    ) -> DAGRunResponse | ServerResponseError:
+        """Create a dag run."""
+        if trigger_dag_run.conf is None:
+            trigger_dag_run.conf = {}
+        try:
+            self.response = self.client.post(
+                f"dags/{dag_id}/dagRuns", 
json=trigger_dag_run.model_dump(mode="json")
+            )
+            return DAGRunResponse.model_validate_json(self.response.content)
+        except ServerResponseError as e:
+            raise e
+
 
 class DagRunOperations(BaseOperations):
     """Dag run operations."""
@@ -553,20 +567,6 @@ class DagRunOperations(BaseOperations):
             path=f"/dags/{dag_id}/dagRuns", 
data_model=DAGRunCollectionResponse, params=params
         )
 
-    def trigger(
-        self, dag_id: str, trigger_dag_run: TriggerDAGRunPostBody
-    ) -> DAGRunResponse | ServerResponseError:
-        """Create a dag run."""
-        if trigger_dag_run.conf is None:
-            trigger_dag_run.conf = {}
-        try:
-            self.response = self.client.post(
-                f"dags/{dag_id}/dagRuns", 
json=trigger_dag_run.model_dump(mode="json")
-            )
-            return DAGRunResponse.model_validate_json(self.response.content)
-        except ServerResponseError as e:
-            raise e
-
 
 class JobsOperations(BaseOperations):
     """Job operations."""
diff --git a/airflow-ctl/tests/airflow_ctl/api/test_operations.py 
b/airflow-ctl/tests/airflow_ctl/api/test_operations.py
index 785fed87dcc..01df0de6577 100644
--- a/airflow-ctl/tests/airflow_ctl/api/test_operations.py
+++ b/airflow-ctl/tests/airflow_ctl/api/test_operations.py
@@ -775,6 +775,44 @@ class TestDagOperations:
         is_paused=True,
     )
 
+    # DagRun related
+    trigger_dag_run = TriggerDAGRunPostBody(
+        conf=None,
+        note=None,
+    )
+
+    dag_id = "dag_id"
+    dag_run_id = "dag_run_id"
+    dag_run_response = DAGRunResponse(
+        dag_display_name=dag_run_id,
+        dag_run_id=dag_run_id,
+        dag_id=dag_id,
+        logical_date=datetime.datetime(2025, 1, 1, 0, 0, 0),
+        queued_at=datetime.datetime(2025, 1, 1, 0, 0, 0),
+        start_date=datetime.datetime(2025, 1, 1, 0, 0, 0),
+        end_date=datetime.datetime(2025, 1, 1, 0, 0, 0),
+        data_interval_start=datetime.datetime(2025, 1, 1, 0, 0, 0),
+        data_interval_end=datetime.datetime(2025, 1, 1, 0, 0, 0),
+        last_scheduling_decision=datetime.datetime(2025, 1, 1, 0, 0, 0),
+        run_after=datetime.datetime(2025, 1, 1, 0, 0, 0),
+        run_type=DagRunType.MANUAL,
+        state=DagRunState.RUNNING,
+        triggered_by=DagRunTriggeredByType.UI,
+        conf={},
+        note=None,
+        dag_versions=[
+            DagVersionResponse(
+                id=uuid.uuid4(),
+                version_number=1,
+                dag_id=dag_id,
+                bundle_name="bundle_name",
+                bundle_version="1",
+                created_at=datetime.datetime(2025, 1, 1, 0, 0, 0),
+                dag_display_name=dag_id,
+            )
+        ],
+    )
+
     def test_get(self):
         def handle_request(request: httpx.Request) -> httpx.Response:
             assert request.url.path == "/api/v2/dags/dag_id"
@@ -889,6 +927,15 @@ class TestDagOperations:
         response = client.dags.list_warning()
         assert response == self.dag_warning_collection_response
 
+    def test_trigger(self):
+        def handle_request(request: httpx.Request) -> httpx.Response:
+            assert request.url.path == f"/api/v2/dags/{self.dag_id}/dagRuns"
+            return httpx.Response(200, 
json=json.loads(self.dag_run_response.model_dump_json()))
+
+        client = make_api_client(transport=httpx.MockTransport(handle_request))
+        response = client.dags.trigger(dag_id=self.dag_id, 
trigger_dag_run=self.trigger_dag_run)
+        assert response == self.dag_run_response
+
 
 class TestDagRunOperations:
     dag_id = "dag_id"
@@ -928,11 +975,6 @@ class TestDagRunOperations:
         total_entries=1,
     )
 
-    trigger_dag_run = TriggerDAGRunPostBody(
-        conf=None,
-        note=None,
-    )
-
     def test_get(self):
         def handle_request(request: httpx.Request) -> httpx.Response:
             assert request.url.path == 
f"/api/v2/dags/{self.dag_id}/dagRuns/{self.dag_run_id}"
@@ -957,15 +999,6 @@ class TestDagRunOperations:
         )
         assert response == self.dag_run_collection_response
 
-    def test_trigger(self):
-        def handle_request(request: httpx.Request) -> httpx.Response:
-            assert request.url.path == f"/api/v2/dags/{self.dag_id}/dagRuns"
-            return httpx.Response(200, 
json=json.loads(self.dag_run_response.model_dump_json()))
-
-        client = make_api_client(transport=httpx.MockTransport(handle_request))
-        response = client.dag_runs.trigger(dag_id=self.dag_id, 
trigger_dag_run=self.trigger_dag_run)
-        assert response == self.dag_run_response
-
 
 class TestJobsOperations:
     job_response = JobResponse(


Reply via email to