Repository: PrefectHQ/prefect

Issue:
Pausing a work queue via CLI without specifying work pool will pause `default-agent-pool `
### First check

- [X] I added a descriptive title to this issue.
- [X] I used the GitHub search to find a similar issue and didn't find it.
- [X] I searched the Prefect documentation for this issue.
- [X] I checked that this issue is related to Prefect and not one of its dependencies.

### Bug summary

It's ambiguous to allow pausing a work queue via CLI without needing to provide the work pool name, especially since `default` is generally the given work queue name. It makes sense to verify that we are pausing the right work queue.

### Reproduction

```python3
❯ prefect work-queue ls
                                  Work Queues
┏━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Name ┃ Pool            ┃                                 ID ┃ Concurrency L… ┃
┡━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ def… │ zoompool        │ cae04397-7471-42ac-8cc1-9e32bcaba… │ None           │
│ def… │ default-agent-… │ c4a4ebf4-4e0d-4689-b139-7989f4dab… │ None           │
└──────┴─────────────────┴────────────────────────────────────┴────────────────┘
                          (**) denotes a paused queue
❯ prefect work-queue pause default
Work queue 'default' paused
```


### Error

_No response_

### Versions

```Text
Version:             2.16.3
API version:         0.8.4
Python version:      3.10.4
Git commit:          e3f02c00
Built:               Thu, Mar 7, 2024 4:56 PM
OS/Arch:             darwin/arm64
Profile:             local_sqlite
Server type:         ephemeral
Server:
  Database:          sqlite
  SQLite version:    3.43.2
```


### Additional context

_No response_


Discussion:

Resolving patch:
diff --git a/src/prefect/cli/work_queue.py b/src/prefect/cli/work_queue.py
--- a/src/prefect/cli/work_queue.py
+++ b/src/prefect/cli/work_queue.py
@@ -263,6 +263,12 @@ async def pause(
     """
     Pause a work queue.
     """
+
+    if not pool and not typer.confirm(
+        f"You have not specified a work pool. Are you sure you want to pause {name} work queue in `{DEFAULT_AGENT_WORK_POOL_NAME}`?"
+    ):
+        exit_with_error("Work queue pause aborted!")
+
     queue_id = await _get_work_queue_id_from_name_or_id(
         name_or_id=name,
         work_pool_name=pool,


Test patch:
diff --git a/tests/cli/test_work_queues.py b/tests/cli/test_work_queues.py
--- a/tests/cli/test_work_queues.py
+++ b/tests/cli/test_work_queues.py
@@ -272,7 +272,7 @@ class TestPauseWorkQueue:
     def test_pause(self, prefect_client, work_queue):
         assert not work_queue.is_paused
         invoke_and_assert(
-            command=f"work-queue pause {work_queue.name}",
+            command=f"work-queue pause {work_queue.name} --pool default-agent-pool",
             expected_code=0,
         )
         q = read_queue(prefect_client, work_queue.name)
@@ -281,7 +281,7 @@ def test_pause(self, prefect_client, work_queue):
     def test_pause_by_id(self, prefect_client, work_queue):
         assert not work_queue.is_paused
         invoke_and_assert(
-            command=f"work-queue pause {work_queue.id}",
+            command=f"work-queue pause {work_queue.id} --pool default-agent-pool",
             expected_code=0,
         )
         q = read_queue(prefect_client, work_queue.name)
@@ -327,10 +327,48 @@ def test_pause_bad_pool_name(
             expected_code=1,
         )
 
+    def test_pause_without_specifying_pool_name_without_confirmation(
+        self,
+        work_queue,
+    ):
+        invoke_and_assert(
+            command=f"work-queue pause {work_queue.name}",
+            expected_code=1,
+        )
+
+    def test_pause_without_specifying_pool_name_with_confirmation(
+        self,
+        prefect_client,
+        work_queue,
+    ):
+        invoke_and_assert(
+            command=f"work-queue pause {work_queue.name}",
+            user_input="Y",
+            expected_code=0,
+        )
+        q = read_queue(prefect_client, work_queue.name)
+        assert q.is_paused
+
+    def test_pause_without_specifying_pool_name_with_abort(
+        self,
+        prefect_client,
+        work_queue,
+    ):
+        invoke_and_assert(
+            command=f"work-queue pause {work_queue.name}",
+            user_input="N",
+            expected_code=1,
+            expected_output_contains="Work queue pause aborted!",
+        )
+        q = read_queue(prefect_client, work_queue.name)
+        assert not q.is_paused
+
 
 class TestResumeWorkQueue:
     def test_resume(self, prefect_client, work_queue):
-        invoke_and_assert(command=f"work-queue pause {work_queue.name}")
+        invoke_and_assert(
+            command=f"work-queue pause {work_queue.name} --pool default-agent-pool"
+        )
         invoke_and_assert(
             command=f"work-queue resume {work_queue.name}",
             expected_code=0,
@@ -339,7 +377,9 @@ def test_resume(self, prefect_client, work_queue):
         assert not q.is_paused
 
     def test_resume_by_id(self, prefect_client, work_queue):
-        invoke_and_assert(command=f"work-queue pause {work_queue.name}")
+        invoke_and_assert(
+            command=f"work-queue pause {work_queue.name} --pool default-agent-pool"
+        )
         invoke_and_assert(
             command=f"work-queue resume {work_queue.id}",
             expected_code=0,