def METHOD_NAME(
    self,
    runtime: "mlrun.runtimes.KubejobRuntime",
    task: Optional[
        Union["mlrun.run.RunTemplate", "mlrun.run.RunObject", dict]
    ] = None,
    handler: Optional[str] = None,
    name: Optional[str] = "",
    project: Optional[str] = "",
    params: Optional[dict] = None,
    inputs: Optional[Dict[str, str]] = None,
    out_path: Optional[str] = "",
    workdir: Optional[str] = "",
    artifact_path: Optional[str] = "",
    watch: Optional[bool] = True,
    schedule: Optional[
        Union[str, mlrun.common.schemas.schedule.ScheduleCronTrigger]
    ] = None,
    hyperparams: Dict[str, list] = None,
    hyper_param_options: Optional[mlrun.model.HyperParamOptions] = None,
    verbose: Optional[bool] = None,
    scrape_metrics: Optional[bool] = None,
    local_code_path: Optional[str] = None,
    auto_build: Optional[bool] = None,
    param_file_secrets: Optional[Dict[str, str]] = None,
    notifications: Optional[List[mlrun.model.Notification]] = None,
    returns: Optional[List[Union[str, Dict[str, str]]]] = None,
) -> "mlrun.run.RunObject":
    self.enrich_runtime(runtime)
    run = self._create_run_object(task)
    run = self._enrich_run(
        runtime=runtime,
        run=run,
        handler=handler,
        project_name=project,
        name=name,
        params=params,
        inputs=inputs,
        returns=returns,
        hyperparams=hyperparams,
        hyper_param_options=hyper_param_options,
        verbose=verbose,
        scrape_metrics=scrape_metrics,
        out_path=out_path,
        artifact_path=artifact_path,
        workdir=workdir,
        notifications=notifications,
    )
    self._validate_runtime(runtime, run)
    if not runtime.is_deployed():
        if runtime.spec.build.auto_build or auto_build:
            logger.info(
                "Function is not deployed and auto_build flag is set, starting deploy..."
            )
            runtime.deploy(skip_deployed=True, show_on_failure=True)
        else:
            raise mlrun.errors.MLRunRuntimeError(
                "function image is not built/ready, set auto_build=True or use .deploy() method first"
            )
    if runtime.verbose:
        logger.info(f"runspec:\n{run.to_yaml()}")
    if "V3IO_USERNAME" in os.environ and "v3io_user" not in run.metadata.labels:
        run.metadata.labels["v3io_user"] = os.environ.get("V3IO_USERNAME")
    logger.info(
        "Storing function",
        name=run.metadata.name,
        uid=run.metadata.uid,
        db=runtime.spec.rundb,
    )
    self._store_function(runtime, run)
    return self._submit_job(runtime, run, schedule, watch)