def get_flow_run_info(self, flow_run_id: str) -> FlowRunInfoResult:
    '\n        Retrieves version and current state information for the given flow run.\n\n        Args:\n            - flow_run_id (str): the id of the flow run to get information for\n\n        Returns:\n            - GraphQLResult: an object representing information about the flow run\n\n        Raises:\n            - ClientError: if the GraphQL mutation is bad for any reason\n        '
    query = {'query': {with_args('flow_run_by_pk', {'id': flow_run_id}): {'id': True, 'name': True, 'flow_id': True, 'parameters': True, 'context': True, 'version': True, 'scheduled_start_time': True, 'serialized_state': True, with_args('task_runs', {'where': {'map_index': {'_eq': (- 1)}}}): {'id': True, 'task': {'id': True, 'slug': True}, 'version': True, 'serialized_state': True}}}}
    result = self.graphql(query).data.flow_run_by_pk
    if (result is None):
        raise ClientError('Flow run ID not found: "{}"'.format(flow_run_id))
    result.scheduled_start_time = pendulum.parse(result.scheduled_start_time)
    result.state = prefect.engine.state.State.deserialize(result.pop('serialized_state'))
    task_runs = []
    for tr in result.task_runs:
        tr.state = prefect.engine.state.State.deserialize(tr.pop('serialized_state'))
        task_info = tr.pop('task')
        tr.task_id = task_info['id']
        tr.task_slug = task_info['slug']
        task_runs.append(TaskRunInfoResult(**tr))
    result.task_runs = task_runs
    result.context = (result.context.to_dict() if (result.context is not None) else None)
    result.parameters = (result.parameters.to_dict() if (result.parameters is not None) else None)
    return FlowRunInfoResult(**result)
Retrieves version and current state information for the given flow run.

Args:
    - flow_run_id (str): the id of the flow run to get information for

Returns:
    - GraphQLResult: an object representing information about the flow run

Raises:
    - ClientError: if the GraphQL mutation is bad for any reason
def get_flow_run_info(self, flow_run_id: str) -> FlowRunInfoResult:
    '\n        Retrieves version and current state information for the given flow run.\n\n        Args:\n            - flow_run_id (str): the id of the flow run to get information for\n\n        Returns:\n            - GraphQLResult: an object representing information about the flow run\n\n        Raises:\n            - ClientError: if the GraphQL mutation is bad for any reason\n        '
    query = {'query': {with_args('flow_run_by_pk', {'id': flow_run_id}): {'id': True, 'name': True, 'flow_id': True, 'parameters': True, 'context': True, 'version': True, 'scheduled_start_time': True, 'serialized_state': True, with_args('task_runs', {'where': {'map_index': {'_eq': (- 1)}}}): {'id': True, 'task': {'id': True, 'slug': True}, 'version': True, 'serialized_state': True}}}}
    result = self.graphql(query).data.flow_run_by_pk
    if (result is None):
        raise ClientError('Flow run ID not found: "{}"'.format(flow_run_id))
    result.scheduled_start_time = pendulum.parse(result.scheduled_start_time)
    result.state = prefect.engine.state.State.deserialize(result.pop('serialized_state'))
    task_runs = []
    for tr in result.task_runs:
        tr.state = prefect.engine.state.State.deserialize(tr.pop('serialized_state'))
        task_info = tr.pop('task')
        tr.task_id = task_info['id']
        tr.task_slug = task_info['slug']
        task_runs.append(TaskRunInfoResult(**tr))
    result.task_runs = task_runs
    result.context = (result.context.to_dict() if (result.context is not None) else None)
    result.parameters = (result.parameters.to_dict() if (result.parameters is not None) else None)
    return FlowRunInfoResult(**result)