def METHOD_NAME(  # type: ignore
    cls, values: Dict[str, Any]
) -> Dict[str, Any]:
    """Validate that the minimum required components have been supplied."""
    # check required components are present
    required_components = [
        name for name, attributes in cls.__fields__.items() if attributes.required
    ]
    min_fields_present = all(
        values.get(component) for component in required_components
    )
    if not min_fields_present:
        raise ValueError(
            f"{cls.__name__} must be supplied all of: [{', '.join(required_components)}]."  # type: ignore
        )
    # check the types and values are consistent with the option and multivalue fields
    for name, value in values.items():
        connector_param = cls.get_connector_param(name)
        if connector_param:
            options = connector_param.get("options")
            multiselect = connector_param.get("multiselect")
            if options:
                if isinstance(value, str):
                    if value not in options:
                        raise ValueError(
                            f"'{name}' must be one of [{', '.join(options)}]"
                        )
                elif isinstance(value, list):
                    if not multiselect:
                        raise ValueError(
                            "f'{name}' must be a single value when multiselect is not enabled, not a list"
                        )
                    invalid_options = [
                        entry for entry in value if entry not in options
                    ]
                    if invalid_options:
                        raise ValueError(
                            f"[{', '.join(invalid_options)}] are not valid options, '{name}' must be a list of values from [{', '.join(options)}]"
                        )
    return values