### Apache Airflow Provider(s)

amazon

### Versions of Apache Airflow Providers

_No response_

### Apache Airflow version

2.5.0

### Operating System

MacOS

### Deployment

Virtualenv installation

### Deployment details

_No response_

### What happened

Discussed in #28294

### What you think should happen instead

_No response_

### How to reproduce

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

def _generate_response(self, test_id, state: str) -> dict[str, Any]:
        return {
            "Id": test_id,
            "Status": {
                "State": state,
            },
        }
    @mock.patch("tests.providers.amazon.aws.utils.test_waiter.get_state_test")
    def test_waiter(self, mock_get_state):
        test_id = "test_id"
        mock_get_state.return_value = self._generate_response(test_id, "Created")
        waiter(
            get_state_callable=get_state_test,
            get_state_args={"test_id": test_id},
            parse_response=["Status", "State"],
            desired_state=SUCCESS_STATES,
            failure_states=FAILURE_STATES,
            object_type="test_object",
            action="testing",
        )
        assert mock_get_state.called_once()
    @mock.patch("tests.providers.amazon.aws.utils.test_waiter.get_state_test")
    def test_waiter_failure(self, mock_get_state):