code: def get_plan(self, project_name: str, run_spec: RunSpec) -> RunPlan:
      body = GetRunPlanRequest(run_spec=run_spec)
      resp = self._request(
          f"/api/project/{project_name}/runs/get_plan", body=body.json()
      )
      return parse_obj_as(RunPlan, resp.json())
  
file_path: dstack/src/dstack/api/server/_runs.py
imports: from typing import List, Optional
  from pydantic import parse_obj_as
  from dstack._internal.core.models.runs import Run, RunPlan, RunSpec
  from dstack._internal.server.schemas.runs import DeleteRunsRequest, GetRunPlanRequest, GetRunRequest, ListRunsRequest, StopRunsRequest
  from dstack.api.server._group import APIClientGroup
label_desc: Use image node_id 3 for calling the RunsAPIClient obj's underlying member method code with example usage: obj.get_plan(project_name, run_spec) and returns: parse_obj_as