docs: def validate(self, input_parameters, context):
          """Runs all set type transformers / validators against the provided input parameters and returns any errors"""
          errors = {}
  
          for key, type_handler in self.input_transformations.items():
              if self.raise_on_invalid:
                  if key in input_parameters:
                      input_parameters[key] = self.initialize_handler(
                          type_handler,
                          input_parameters[key],
                          context=context
                      )
              else:
                  try:
                      if key in input_parameters:
                          input_parameters[key] = self.initialize_handler(
                              type_handler,
                              input_parameters[key],
                              context=context
                          )
                  except InvalidTypeData as error:
                      errors[key] = error.reasons or str(error.message)
                  except Exception as error:
                      if hasattr(error, 'args') and error.args:
                          errors[key] = error.args[0]
                      else:
                          errors[key] = str(error)
          for require in self.required:
              if not require in input_parameters:
                  errors[require] = "Required parameter '{}' not supplied".format(require)
          if not errors and getattr(self, 'validate_function', False):
              errors = self.validate_function(input_parameters)
          return errors