### Willingness to contribute Yes. I can contribute this feature independently. ### Proposal Summary Add wait for an arbitrary state during the watch: Here is our code, with is very agly. def run(self, display_name: str, env_vars: dict = None) -> DataScienceJobRun: job_run = (self._oci_instance. run(name=display_name, env_var=env_vars)) job_run.TERMINAL_STATES += [JobRun.LIFECYCLE_STATE_IN_PROGRESS] job_run.watch() job_run.TERMINAL_STATES.remove(JobRun.LIFECYCLE_STATE_IN_PROGRESS) return job_run ### Motivation Our project needs the run/delete to be blocking and having the busy waiting loop in our code not idela ### Details _No response_