class_docstr: Specifies the flow(s) that this flow depends on.
  
  ```
  @trigger_on_finish(flow='FooFlow')
  ```
  or
  ```
  @trigger_on_finish(flows=['FooFlow', 'BarFlow'])
  ```
  This decorator respects the @project decorator and triggers the flow
  when upstream runs within the same namespace complete successfully
  
  Additionally, you can specify project aware upstream flow dependencies
  by specifying the fully qualified project_flow_name.
  ```
  @trigger_on_finish(flow='my_project.branch.my_branch.FooFlow')
  ```
  or
  ```
  @trigger_on_finish(flows=['my_project.branch.my_branch.FooFlow', 'BarFlow'])
  ```
  
  You can also specify just the project or project branch (other values will be
  inferred from the current project or project branch):
  ```
  @trigger_on_finish(flow={"name": "FooFlow", "project": "my_project", "project_branch": "branch"})
  ```
  
  Note that `branch` is typically one of:
    - `prod`
    - `user.bob`
    - `test.my_experiment`
    - `prod.staging`
  
  Parameters
  ----------
  flow : Union[str, Dict[str, str]], optional
      Upstream flow dependency for this flow.
  flows : List[Union[str, Dict[str, str]], optional
      Upstream flow dependencies for this flow.
  options : dict, optional
      Backend-specific configuration for tuning eventing behavior.
code: def get_top_level_options(self):
      return list(self._option_values.items())
  
file_path: metaflow/metaflow/plugins/events_decorator.py
imports: import json
  import time
  import re
  from metaflow import current
  from metaflow.decorators import FlowDecorator
  from metaflow.exception import MetaflowException
  from metaflow.util import is_stringish
label_desc: Use image node_id 2 for calling the TriggerOnFinishDecorator obj's underlying member method code with example usage: obj.get_top_level_options() and returns: list