code: def validate_step_args_input(
      step_args: _StepArguments,
      expected_caller: Set[str],
      error_message: str,
  ):
      """Validate the `_StepArguments` object which is passed into a pipeline step
  
      Args:
          step_args (_StepArguments): A `_StepArguments` object to be used for composing
              a pipeline step.
          expected_caller (Set[str]): The expected name of the caller function which is
              intercepted by the PipelineSession to get the step arguments.
          error_message (str): The error message to be thrown if the validation fails.
      """
      if not isinstance(step_args, _StepArguments):
          raise TypeError(error_message)
      if step_args.caller_name not in expected_caller:
          raise ValueError(error_message)
  
imports: from __future__ import absolute_import
  import inspect
  import logging
  from functools import wraps
  from pathlib import Path
  from typing import List, Sequence, Union, Set, TYPE_CHECKING, Optional
  import hashlib
  from urllib.parse import unquote, urlparse
  from contextlib import contextmanager
  from _hashlib import HASH
  from sagemaker.utils import base_from_name
  from sagemaker.workflow.parameters import Parameter
  from sagemaker.workflow.pipeline_context import _StepArguments, _PipelineConfig
  from sagemaker.workflow.entities import Entity, RequestType
  from sagemaker.workflow.pipeline_definition_config import PipelineDefinitionConfig
label_desc: Use image node_id 15 for calling a global function with example usage: validate_step_args_input(step_args, expected_caller, error_message) without return types