code: def _validate_and_apply_step_config(self):
      self.num_dropped_rows = None
      self.model_uri = None
      self.model_details = None
      self.version = None
  
      self.register_model_name = self.step_config.get("model_name")
      if self.register_model_name is None:
          raise MlflowException(
              "Missing 'model_name' config in register step config.",
              error_code=INVALID_PARAMETER_VALUE,
          )
  
      self.allow_non_validated_model = self.step_config.get(
          "allow_non_validated_model", False
      )
      self.registry_uri = self.step_config.get("registry_uri", None)
  
imports: import logging
  from pathlib import Path
  from typing import Any, Dict
  import mlflow
  from mlflow.entities import SourceType
  from mlflow.exceptions import INVALID_PARAMETER_VALUE, MlflowException
  from mlflow.recipes.artifacts import ModelVersionArtifact, RegisteredModelVersionInfo
  from mlflow.recipes.cards import BaseCard
  from mlflow.recipes.step import BaseStep, StepClass
  from mlflow.recipes.steps.train import TrainStep
  from mlflow.recipes.utils.execution import get_step_output_path
  from mlflow.recipes.utils.tracking import TrackingConfig, apply_recipe_tracking_config, get_recipe_tracking_config
  from mlflow.tracking._model_registry import DEFAULT_AWAIT_MAX_SLEEP_SECONDS
  from mlflow.utils.databricks_utils import get_databricks_env_vars, get_databricks_model_version_url, get_databricks_run_url
  from mlflow.utils.mlflow_tags import MLFLOW_RECIPE_TEMPLATE_NAME, MLFLOW_SOURCE_TYPE
label_desc: Use image node_id 2 for calling the RegisterStep obj's underlying member method code with example usage: obj._validate_and_apply_step_config() without return types