class_docstr: A validator for the 'input' parameter.
docstr: Validate the arguments provided to the decorator's input parameter.
  
  Args:
      udf (Callable[..., T]): The feature_processor wrapped user function.
      fp_config (FeatureProcessorConfig): The configuration for the feature_processor.
  
  Raises:
      ValueError: If no inputs are provided.
docstr_tok: ["Validate","the","arguments","provided","to","the","decorator","'s","input","parameter",".","Args",":","udf","(","Callable","[","...",",","T","]",")",":","The","feature_processor","wrapped","user","function",".","fp_config","(","FeatureProcessorConfig",")",":","The","configuration","for","the","feature_processor",".","Raises",":","ValueError",":","If","no","inputs","are","provided","."]
code: def validate(
      self, udf: Callable[..., Any], fp_config: FeatureProcessorConfig
  ) -> None:
      """Validate the arguments provided to the decorator's input parameter.
  
      Args:
          udf (Callable[..., T]): The feature_processor wrapped user function.
          fp_config (FeatureProcessorConfig): The configuration for the feature_processor.
  
      Raises:
          ValueError: If no inputs are provided.
      """
  
      inputs = fp_config.inputs
      if inputs is None or len(inputs) == 0:
          raise ValueError("At least one input is required.")
  
imports: from __future__ import absolute_import
  import inspect
  import re
  from abc import ABC, abstractmethod
  from typing import Any, Callable, List
  import attr
  from sagemaker.feature_store.feature_processor._data_source import FeatureGroupDataSource, BaseDataSource
  from sagemaker.feature_store.feature_processor._feature_processor_config import FeatureProcessorConfig
  from sagemaker.feature_store.feature_processor._input_offset_parser import InputOffsetParser
label_desc: Use image node_id 1 for calling the InputValidator obj's underlying member method code with example usage: obj.validate(udf, fp_config) without return types